日语数字正则表达式

时间:2017-09-19 01:51:14

标签: javascript regex

**问题:**我如何只允许日语(Hiragana / Katagana)中的数字

使用案例:我想采取"数字"字段(我的输入应该只接受英语和日语的数字)

我已编写以下示例代码段:



// The goal of this demo is to demonstrate the RegEx patterns for English and Japanese Chracters

var english = "09c12";
var japanese =  "0123あb";


console.log("-----English Test---")
console.log(english.replace(/[^0-9\/]/gi, ''));
console.log("--------------------")


console.log("-----japanese Test---")
console.log(japanese.replace(/[^0-9\/]/gi, ''));
console.log("--------------------")




问题: 这对日本人不起作用。请赐教。

我假设日文字符有不同的ASCII / Unicode值?

请帮我修复代码。我想确保用户输入数字。

由于

2 个答案:

答案 0 :(得分:7)

您的日语数字不是简单的ASCII数字,它们是unicode全角字符,(参见http://www.fileformat.info/info/unicode/char/ff10/index.htm

javascript中的正则表达式语法没有unicode类,因此您必须通过手动指定unicode范围来选择它们。



console.log("0123あb".replace(/[\uff10-\uff19]/g, "_"));
console.log("0123あb".replace(/[^\uff10-\uff19]/g, "_"));
console.log(String.fromCharCode(...[...Array(10)].map((x, i) => 0xff10 + i))
);




答案 1 :(得分:1)

这对你有用吗?

var english = "09c12";
var japanese = "0123あsd2";


console.log("-----English Test---")
console.log(english.replace(/[^0-9\/]/gi, ''));
console.log("--------------------")


console.log("-----japanese Test---")
console.log(japanese.replace(/[^0-9]/g, ''));
console.log("--------------------")

JSFiddle