**问题:**我如何只允许日语(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值?
请帮我修复代码。我想确保用户输入数字。
由于
答案 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("--------------------")