From 1fc9a25b5c824235edc8feac5946277d58d9b883 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Thu, 15 Oct 2015 18:57:11 +0200 Subject: [PATCH] Recognize half width characters --- spec/text-utils-spec.coffee | 7 +++++++ src/text-utils.coffee | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/text-utils-spec.coffee b/spec/text-utils-spec.coffee index a8bdbc2f7..81df866f4 100644 --- a/spec/text-utils-spec.coffee +++ b/spec/text-utils-spec.coffee @@ -57,3 +57,10 @@ describe 'text utilities', -> expect(textUtils.isDoubleWidthCharacter(",")).toBe(true) expect(textUtils.isDoubleWidthCharacter("a")).toBe(false) + + describe ".isHalfWidthCharacter(character)", -> + it "returns true when the character is an half width form", -> + expect(textUtils.isHalfWidthCharacter("ハ")).toBe(true) + expect(textUtils.isHalfWidthCharacter("ヒ")).toBe(true) + expect(textUtils.isHalfWidthCharacter("ᆲ")).toBe(true) + expect(textUtils.isHalfWidthCharacter("B")).toBe(false) diff --git a/src/text-utils.coffee b/src/text-utils.coffee index 1995094fe..3b0634948 100644 --- a/src/text-utils.coffee +++ b/src/text-utils.coffee @@ -81,6 +81,11 @@ isDoubleWidthCharacter = (character) -> isCjkUnifiedIdeograph(charCode) or isFullWidthForm(charCode) +isHalfWidthCharacter = (character) -> + charCode = character.charCodeAt(0) + + 0xFF65 <= charCode <= 0xFFDC + # Does the given string contain at least surrogate pair, variation sequence, # or combined character? # @@ -94,4 +99,4 @@ hasPairedCharacter = (string) -> index++ false -module.exports = {isPairedCharacter, hasPairedCharacter, isDoubleWidthCharacter} +module.exports = {isPairedCharacter, hasPairedCharacter, isDoubleWidthCharacter, isHalfWidthCharacter}