"Illegal hexadecimal escape sequence error" 使用 JQuery 正则表达式检查波斯语字符时出错
"Illegal hexadecimal escape sequence error" error while checking Persian characters with JQuery RegExp
我想在 JQuery 中使用 RegExp 检查输入的字符。字符应为波斯语、space 或半-space.
var pattern = new RegExp(/^([\x{0600}-\x{06FF}| |\x{200C}])+$/);
if(!pattern.test(name)){
console.log('error');
}
中检查了这段代码
而且效果很好!但是,当我在我的代码中编写它时,它无法正常工作并显示语法错误。
PHPStorm 通知我这个错误:
Illegal hexadecimal escape sequence error.
It works well!
也许它适用于 PCRE,但不适用于 JavaScript。请注意您在 regex101.com.
左侧选择的正则表达式风格
您需要使用带有文字的 \u
符号:
var pattern = /^[\u0600-\u06FF\u200C ]+$/;
这是一个demo
另外请注意,您不需要围绕字符设置捕获组 class 然后应用量词:这样会降低性能。您可以使用 $&
反向引用来引用整个匹配项。字符 class 中的 |
符号被视为文字 |
符号,而不是交替符号,所以我想我们最好将其删除。
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>
我想在 JQuery 中使用 RegExp 检查输入的字符。字符应为波斯语、space 或半-space.
var pattern = new RegExp(/^([\x{0600}-\x{06FF}| |\x{200C}])+$/);
if(!pattern.test(name)){
console.log('error');
}
中检查了这段代码
而且效果很好!但是,当我在我的代码中编写它时,它无法正常工作并显示语法错误。 PHPStorm 通知我这个错误:
Illegal hexadecimal escape sequence error.
It works well!
也许它适用于 PCRE,但不适用于 JavaScript。请注意您在 regex101.com.
左侧选择的正则表达式风格您需要使用带有文字的 \u
符号:
var pattern = /^[\u0600-\u06FF\u200C ]+$/;
这是一个demo
另外请注意,您不需要围绕字符设置捕获组 class 然后应用量词:这样会降低性能。您可以使用 $&
反向引用来引用整个匹配项。字符 class 中的 |
符号被视为文字 |
符号,而不是交替符号,所以我想我们最好将其删除。
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>