UNPKG

asian-regexps

Version:
82 lines 3.25 kB
// import xregexp from 'xregexp'; // console.log(xregexp('\\p{Hiragana}')); /* string regexps */ export const chineseRegStringExp = '[⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶿一-鿿豈-舘並-龎]'; export const kanjiStringRegex = '[⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶿一-鿿豈-舘並-龎]'; export const hiraganaStringRegex = '[ぁ-ゖゝ-ゟ]'; export const katakanaStringRegex = '[ァ-ヺヽ-ヿㇰ-ㇿ㋐-㋾㌀-㍗ヲ-ッア-ン]'; export const japaneseStringRegex = `${kanjiStringRegex}|${hiraganaStringRegex}|${katakanaStringRegex}`; export const koreanStringRegex = '[\uac00-\ud7af]|[\u1100-\u11ff]|[\u3130-\u318f]|[\ua960-\ua97f]|[\ud7b0-\ud7ff]'; /* regexps */ // contains export const containsChineseRegex = new RegExp(chineseRegStringExp); export const containsJapaneseRegex = new RegExp(japaneseStringRegex); export const containsKanjiRegex = new RegExp(kanjiStringRegex); export const containsHiraganaRegex = new RegExp(hiraganaStringRegex); export const containsKatakanaRegex = new RegExp(katakanaStringRegex); export const containsKoreanRegex = new RegExp(koreanStringRegex); // all export const allChineseRegex = new RegExp(`^${chineseRegStringExp}+$`, 'g'); export const allJapaneseRegex = new RegExp(`^${japaneseStringRegex}+$`, 'g'); export const allKanjiRegex = new RegExp(`^${kanjiStringRegex}+$`, 'g'); export const allHiraganaRegex = new RegExp(`^${hiraganaStringRegex}+$`, 'g'); export const allKatakanaRegex = new RegExp(`^${katakanaStringRegex}+$`, 'g'); export const allKoreanRegex = new RegExp(`^${koreanStringRegex}+$`, 'g'); /* has some */ export function hasSomeChinese(input) { return containsChineseRegex.test(input); } export function hasSomeJapanese(input) { return containsJapaneseRegex.test(input); } export function hasSomeKanji(input) { return containsKanjiRegex.test(input); } export function hasSomeHiragana(input) { return containsHiraganaRegex.test(input); } export function hasSomeKatakana(input) { return containsKatakanaRegex.test(input); } export function hasSomeKorean(input) { return containsKoreanRegex.test(input); } /* is character (alias of "has some") */ export function isChineseCharacter(character) { return hasSomeChinese(character); } export function isJapaneseCharacter(character) { return hasSomeJapanese(character); } export function isKanjiCharacter(character) { return hasSomeKanji(character); } export function isHiraganaCharacter(character) { return hasSomeHiragana(character); } export function isKatakanaCharacter(character) { return hasSomeKatakana(character); } export function isKoreanCharacter(character) { return !!character.match(containsKoreanRegex); } /* full */ export function isFullChinese(input) { return !!input.match(allChineseRegex); } export function isFullJapanese(input) { return !!input.match(allJapaneseRegex); } export function isFullKanji(input) { return !!input.match(allKanjiRegex); } export function isFullHiragana(input) { return !!input.match(allHiraganaRegex); } export function isFullKatakana(input) { return !!input.match(allKatakanaRegex); } export function isFullKorean(input) { return !!input.match(allKoreanRegex); } //# sourceMappingURL=index.js.map