如何验证中文(unicode)和英文名称?
问题描述:
我有一个多语言网站(中文和英文)。如何验证中文(unicode)和英文名称?
我喜欢在javascript中验证文本字段(名称字段)。到目前为止,我有以下代码。
var chkName = /^[characters]{1,20}$/;
if(chkName.test("[name value goes here]")){
alert("validated");
}
问题是,/^[characters] {1,20} $ /只能匹配英文字符。是否可以匹配ANY(包括Unicode)字符?我曾经使用下面的正则表达式,但我不想在每个字符之间放置空格。
/^(.+){1,20}$/
答
你可以看看Javascript + Unicode regexes,做一些研究,以准确地找到其范围的字符,你想允许:
见What's the complete range for Chinese characters in Unicode?
阅读这两个和一点点额外的研究,你应该是后能够找到适当的值来完成类似的事情:/^[-'a-z\u4e00-\u9eff]{1,20}$/i
答
var chkName = /\s/;
function check(name) {
document.write("<br />" + name + " is ");
if (!chkName.test(name)) {
document.write("okay");
} else {
document.write("invalid");
}
}
check("namevaluegoeshere");
check("name value goes here");
这样你只是检查名称中是否有空白。
如果提供韩文,日文,越南文或克林贡语的名字,您打算如何处理? – 2011-06-16 19:27:04
你有什么规则? 1-20个字符,无空格。还要别的吗? – roberkules 2011-06-16 19:29:01
@Russell Borogove //这也是我关心的问题。我想验证所有的unicode和英文。 – Moon 2011-06-16 19:31:33