util-helpers
Version:
38 lines (35 loc) • 1.76 kB
JavaScript
import { toString } from 'ut2';
import { objectValues, nativeUndefined } from './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 = '(?:' + 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 = 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' : nativeUndefined;
var reg = new RegExp(resultRegExp, flag);
return reg.test(valueStr);
}
export { isChinese as default };