diff --git a/spec/text-utils-spec.coffee b/spec/text-utils-spec.coffee index dd528b37e..f4438cf8d 100644 --- a/spec/text-utils-spec.coffee +++ b/spec/text-utils-spec.coffee @@ -74,3 +74,23 @@ describe 'text utilities', -> expect(textUtils.isKoreanCharacter("ㄼ")).toBe(true) expect(textUtils.isKoreanCharacter("O")).toBe(false) + + describe ".isCjkCharacter(character)", -> + it "returns true when the character is either a korean, half-width or double-width character", -> + expect(textUtils.isCjkCharacter("我")).toBe(true) + expect(textUtils.isCjkCharacter("私")).toBe(true) + expect(textUtils.isCjkCharacter("B")).toBe(true) + expect(textUtils.isCjkCharacter(",")).toBe(true) + expect(textUtils.isCjkCharacter("¢")).toBe(true) + expect(textUtils.isCjkCharacter("ハ")).toBe(true) + expect(textUtils.isCjkCharacter("ヒ")).toBe(true) + expect(textUtils.isCjkCharacter("ᆲ")).toBe(true) + expect(textUtils.isCjkCharacter("■")).toBe(true) + expect(textUtils.isCjkCharacter("우")).toBe(true) + expect(textUtils.isCjkCharacter("가")).toBe(true) + expect(textUtils.isCjkCharacter("ㅢ")).toBe(true) + expect(textUtils.isCjkCharacter("ㄼ")).toBe(true) + + expect(textUtils.isDoubleWidthCharacter("a")).toBe(false) + expect(textUtils.isDoubleWidthCharacter("O")).toBe(false) + expect(textUtils.isDoubleWidthCharacter("z")).toBe(false) diff --git a/src/text-utils.coffee b/src/text-utils.coffee index 82bed4da5..3f283cfa3 100644 --- a/src/text-utils.coffee +++ b/src/text-utils.coffee @@ -89,6 +89,11 @@ isKoreanCharacter = (character) -> 0xA960 <= charCode <= 0xA97F or 0xD7B0 <= charCode <= 0xD7FF +isCjkCharacter = (character) -> + isDoubleWidthCharacter(character) or + isHalfWidthCharacter(character) or + isKoreanCharacter(character) + # Does the given string contain at least surrogate pair, variation sequence, # or combined character? # @@ -102,4 +107,4 @@ hasPairedCharacter = (string) -> index++ false -module.exports = {isPairedCharacter, hasPairedCharacter, isDoubleWidthCharacter, isHalfWidthCharacter, isKoreanCharacter} +module.exports = {isPairedCharacter, hasPairedCharacter, isDoubleWidthCharacter, isHalfWidthCharacter, isKoreanCharacter, isCjkCharacter}