我想使用十六进制元字符进行正则表达式验证。我决定采用这种方式的原因是因为我只需要使用希腊语来工作。
来自http://www.unicode.org/Public/UNIDATA/Blocks.txt我看到我需要使用1F00到1FFF的字符。但是我无法找到出错的地方。
这是我到目前为止所做的:
document.querySelector("#register input[name='first_name']").onblur =
function(){
/*RegEx about name*/
var str = /[\u1F00-\u1FFF]/g;
var name = document.querySelector("#registerinput[name='first_name']").value;
if (name == null || name == ""){
alert("First name must be filled out!");
}
else if(!name.match(str)){
alert("Name must contain (greek)letters only!");
}
};
答案 0 :(得分:1)
您使用的范围是希腊语扩展。你想要的范围从0370到03ff。从您引用的页面:
0370..03FF;希腊语和科普特语
1F00..1FFF;希腊语扩展
function is_greek(name){
var greek = /[\u0370-\u03ff]/;
return greek.test(name);
}
> is_greek("α")
< true