日语检测全宽字符

时间:2016-05-20 15:31:55

标签: javascript

我需要禁止在输入字段中写入全角日文字符, 半宽是可以的,除了全宽之外,任何其他符号都可以。

此处https://gist.github.com/terrancesnyder/1345094 我找到全宽度片假名(zenkaku全角)的正则表达式就够了吗? 目前我的代码看起来像这样

if ( /[ァ-ヶ]/.test("カナ") ) {
  console.log('full width');
}else{
  console.log('not full width');
}

我不熟悉日语,所以我也不知道还有什么我要检查的,我的意思是他们有片假名,平假名等等,这就是我为什么会这样做的原因。不确定我的剧本是否足够好,请让我知道您的想法

2 个答案:

答案 0 :(得分:1)

日本人使用了很多这样的角色 e.g。

  • ひらがな(hiragana):あいうえお
  • カタカナ(片假名):アイウエオ
  • 半角カタカナ(半角片假名):アイウエオ
  • 汉字(kanji):安以宇衣于
  • 全角数字(全角数):12345
  • 全角アルファベット(全角字母):ABCDE
  • 记号(符号):○△□〜☆≠≧

使用简单的正则表达式无法检测到它。 字符宽度的变化也适用于其他亚洲语言。 在Unicode中,定义为"east asian width"

Unicodedata module of python通常用于确定“东亚宽度”。 在JavaScript的标准函数中不存在类似的东西。

但是,有一些npm modules。 如果使用this East Asian Width module,可以这样确定。

var eaw = require('eastasianwidth');
function isHalfWidth(c){ return eaw.length(c) == 1; }

isHalfWidth("あ")
// -> false
isHalfWidth("ア")
// -> true
isHalfWidth("A")
// -> false
isHalfWidth("A")
/// -> true

答案 1 :(得分:0)

mbStrWidth('过&#39); //返回2 --->全屏宽度     mbStrWidth('サ&#39); //返回1 --->半宽

"remote: HTTP Basic: Access denied
fatal: Authentication failed for'https://gitlab.com/mygitproject/'"