UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

40 lines (36 loc) 1.75 kB
'use strict'; var ut2 = require('ut2'); var native = require('./utils/native.js'); var chineseDictionary = { chineseBasic: '[\u4e00-\u9fa5]', chineseExtend: '[\u9ea6-\u9fff]', chineseExtend2: '[\uF900-\uFAD9]', chineseExtendA: '[\u3400-\u4DBF]', chineseExtendB: "[\uD840\uDC00-\uD869\uDEDF]", chineseExtendC: "[\uD869\uDF00-\uD86D\uDF38]", chineseExtendD: "[\uD86D\uDF40-\uD86E\uDC1D]", chineseExtendE: "[\uD86E\uDC20-\uD873\uDEA1]", chineseExtendF: "[\uD873\uDEB0-\uD87A\uDFE0]", chineseExtendG: "[\uD880\uDC00-\uD884\uDF4A]", chineseExtendH: "[\uD884\uDF50-\uD888\uDFAF]", chineseExtendI: "[\uD87A\uDFF0-\uD87B\uDE5D]" }; var looseChineseRegExp = chineseDictionary.chineseBasic + '+'; var chineseRegExp = '^' + chineseDictionary.chineseBasic + '+$'; var chineseWithExtend = '(?:' + native.objectValues(chineseDictionary).join('|') + ')'; var looseChineseExtendRegExp = chineseWithExtend + '+'; var chineseExtendRegExp = '^' + chineseWithExtend + '+$'; var supportRegExpUnicode = RegExp.prototype.hasOwnProperty('unicode'); function isChinese(value, options) { if (options === void 0) { options = {}; } var _a = options.loose, loose = _a === void 0 ? false : _a, _b = options.useExtend, useExtend = _b === void 0 ? false : _b; var valueStr = ut2.toString(value); var basicRegExp = loose ? looseChineseRegExp : chineseRegExp; var extendRegExp = loose ? looseChineseExtendRegExp : chineseExtendRegExp; var hasExtend = useExtend && supportRegExpUnicode; var resultRegExp = hasExtend ? extendRegExp : basicRegExp; var flag = hasExtend ? 'u' : native.nativeUndefined; var reg = new RegExp(resultRegExp, flag); return reg.test(valueStr); } module.exports = isChinese;