Skip to content

pascal

將字符串轉換為帕斯卡命名格式(首字母大寫)。

語法

typescript
pascal(str: string): string

參數

  • str (string): 要轉換的字符串

返回值

  • string: 帕斯卡命名格式的字符串

示例

基本用法

typescript
import { pascal } from 'radash'

pascal('hello world') // 'HelloWorld'
pascal('hello-world') // 'HelloWorld'
pascal('hello_world') // 'HelloWorld'
pascal('Hello World') // 'HelloWorld'

處理各種分隔符

typescript
import { pascal } from 'radash'

pascal('user-name') // 'UserName'
pascal('user_name') // 'UserName'
pascal('user name') // 'UserName'
pascal('userName') // 'UserName'
pascal('UserName') // 'UserName'

處理特殊字符

typescript
import { pascal } from 'radash'

pascal('first-name') // 'FirstName'
pascal('last_name') // 'LastName'
pascal('email address') // 'EmailAddress'
pascal('phone-number') // 'PhoneNumber'
pascal('date_of_birth') // 'DateOfBirth'

處理數字

typescript
import { pascal } from 'radash'

pascal('user-123') // 'User123'
pascal('api-v2') // 'ApiV2'
pascal('version-1-0') // 'Version10'
pascal('test-123-abc') // 'Test123Abc'

處理縮寫

typescript
import { pascal } from 'radash'

pascal('user-id') // 'UserId'
pascal('api-url') // 'ApiUrl'
pascal('http-request') // 'HttpRequest'
pascal('json-data') // 'JsonData'

處理連續分隔符

typescript
import { pascal } from 'radash'

pascal('hello--world') // 'HelloWorld'
pascal('hello__world') // 'HelloWorld'
pascal('hello  world') // 'HelloWorld'
pascal('hello---world') // 'HelloWorld'

處理首字母大寫

typescript
import { pascal } from 'radash'

pascal('Hello World') // 'HelloWorld'
pascal('HELLO WORLD') // 'HelloWorld'
pascal('HelloWorld') // 'HelloWorld'
pascal('HELLO_WORLD') // 'HelloWorld'

處理空字符串

typescript
import { pascal } from 'radash'

pascal('') // ''
pascal('   ') // ''
pascal('---') // ''
pascal('___') // ''

處理單個單詞

typescript
import { pascal } from 'radash'

pascal('hello') // 'Hello'
pascal('Hello') // 'Hello'
pascal('HELLO') // 'Hello'
pascal('world') // 'World'

處理復雜字符串

typescript
import { pascal } from 'radash'

pascal('user-profile-settings') // 'UserProfileSettings'
pascal('api-endpoint-config') // 'ApiEndpointConfig'
pascal('database-connection-string') // 'DatabaseConnectionString'
pascal('http-request-handler') // 'HttpRequestHandler'

處理包含數字的字符串

typescript
import { pascal } from 'radash'

pascal('user-123-profile') // 'User123Profile'
pascal('api-v2-endpoint') // 'ApiV2Endpoint'
pascal('test-1-2-3') // 'Test123'
pascal('version-1-0-0') // 'Version100'

處理特殊符號

typescript
import { pascal } from 'radash'

pascal('user@domain.com') // 'User@domain.com'
pascal('file-name.txt') // 'FileName.txt'
pascal('path/to/file') // 'Path/to/file'
pascal('query?param=value') // 'Query?param=value'

處理Unicode字符

typescript
import { pascal } from 'radash'

pascal('café-latte') // 'CaféLatte'
pascal('naïve-user') // 'NaïveUser'
pascal('résumé-data') // 'RésuméData'
pascal('über-user') // 'ÜberUser'

處理類名和組件名

typescript
import { pascal } from 'radash'

// React 組件名
pascal('user-profile') // 'UserProfile'
pascal('nav-bar') // 'NavBar'
pascal('side-menu') // 'SideMenu'

// CSS 類名
pascal('btn-primary') // 'BtnPrimary'
pascal('card-header') // 'CardHeader'
pascal('dropdown-menu') // 'DropdownMenu'

處理API端點

typescript
import { pascal } from 'radash'

pascal('get-user-by-id') // 'GetUserById'
pascal('create-new-post') // 'CreateNewPost'
pascal('update-user-profile') // 'UpdateUserProfile'
pascal('delete-user-account') // 'DeleteUserAccount'

處理數據庫字段

typescript
import { pascal } from 'radash'

pascal('user_id') // 'UserId'
pascal('created_at') // 'CreatedAt'
pascal('updated_at') // 'UpdatedAt'
pascal('is_active') // 'IsActive'

注意事項

  1. 首字母大寫: 帕斯卡命名總是以大寫字母開頭
  2. 分隔符: 支持空格、連字符、下劃線作為分隔符
  3. 數字: 數字會被保留,但不會作為分隔符
  4. 特殊字符: 非分隔符的特殊字符會被保留

與其他函數的區別

  • pascal: 轉換為帕斯卡命名(首字母大寫)
  • camel: 轉換為駝峰命名(首字母小寫)
  • snake: 轉換為蛇形命名
  • kebab: 轉換為短橫線命名

性能

  • 時間復雜度: O(n),其中 n 是字符串長度
  • 空間復雜度: O(n)
  • 適用場景: 類名、組件名、類型名轉換

Released under the MIT License.