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.