Skip to content
目录

文字相关

可以从 ~/utils 中导入。

CJKRegex, isCJK, notCJK

ts
const CJK =
  "\u2e80-\u2eff\u2f00-\u2fdf\u3040-\u309f\u30a0-\u30fa\u30fc-\u30ff\u3100-\u312f\u3200-\u32ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff"
const CJKRegex = new RegExp(`([${CJK}])`, "g")

const isCJK = (text: string) => CJKRegex.test(text)
const notCJK = (text: string) => !isCJK(text)
const CJK =
  "\u2e80-\u2eff\u2f00-\u2fdf\u3040-\u309f\u30a0-\u30fa\u30fc-\u30ff\u3100-\u312f\u3200-\u32ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff"
const CJKRegex = new RegExp(`([${CJK}])`, "g")

const isCJK = (text: string) => CJKRegex.test(text)
const notCJK = (text: string) => !isCJK(text)

CJK 也就是中日韩统一表意文字,这个正则表达式会匹配所有的 CJK 字符。

isHalfWidth

ts
const isHalfWidth = (text: string) => /^[\u0000-\u00ff]*$/.test(text)
const isHalfWidth = (text: string) => /^[\u0000-\u00ff]*$/.test(text)

判断字符串是否全都是半角字符,通常用于判断是否是英文。

isLanguage

ts
const isLanguage = {
  // Russian
  Cyrillic: (text: string) => /\p{sc=Cyrillic}/u.test(text),
  // English, French, German...
  Latin: (text: string) => /\p{sc=Latin}/u.test(text),
  // Chinese, Janpanese, Korean。由于日语和韩语均有可能出现汉字,导致不能准确判断。
  CJK: (text: string) => CJKRegex.test(text),
  Han: (text: string) => /\p{sc=Han}/u.test(text),
  // not full
  Janpanese: (text: string) =>
    /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff]/u.test(text),
  Korea: (text: string) => /\p{sc=Hangul}/u.test(text)
}
const isLanguage = {
  // Russian
  Cyrillic: (text: string) => /\p{sc=Cyrillic}/u.test(text),
  // English, French, German...
  Latin: (text: string) => /\p{sc=Latin}/u.test(text),
  // Chinese, Janpanese, Korean。由于日语和韩语均有可能出现汉字,导致不能准确判断。
  CJK: (text: string) => CJKRegex.test(text),
  Han: (text: string) => /\p{sc=Han}/u.test(text),
  // not full
  Janpanese: (text: string) =>
    /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff]/u.test(text),
  Korea: (text: string) => /\p{sc=Hangul}/u.test(text)
}

使用 Unicode 的属性来判断字符串是否是某种语言。

countWord

ts
function countWord(text: string): number
function countWord(text: string): number

统计字符串的单词数,中文会被当作一个单词。

byteLength

ts
function byteLength(text: string): number
function byteLength(text: string): number

统计字符串的字节数,中文会被当作两个字节。

Released under the MIT License.