我想在JQuery中使用RegExp检查输入字符。人物应该是波斯人,空间或半空间。
var pattern = new RegExp(/^([\x{0600}-\x{06FF}| |\x{200C}])+$/);
if(!pattern.test(name)){
console.log('error');
}
中查看此代码
它运作良好!但是,当我在我的代码中编写它时,它无法正常工作,并显示语法错误。 PHPStorm通知我这个错误:
Illegal hexadecimal escape sequence error.
答案 0 :(得分:2)
效果很好!
也许,它适用于PCRE,但不适用于JavaScript。请注意您在regex101.com左侧选择的正则表达式。
您需要使用\u
表示法与文字:
var pattern = /^[\u0600-\u06FF\u200C ]+$/;
这是demo
另外,请注意,您不需要在字符类周围设置捕获组,然后应用量词:您将失去性能。您可以使用$&
反向引用来引用整个匹配。字符类中的|
符号被视为文字|
符号,而不是替换符号,因此我认为我们最好将其删除。
答案 1 :(得分:0)
function testreg(name){
var pattern = new RegExp("^([\\u0600-\\u06FF\\u200C ])+$");
if(!pattern.test(name)){
alert('error');
}
else{alert('ok');}
}
<button onclick="testreg('1394/04/29')">testreg</button>