Javascript 正则表达式与unicode字符不匹配
我试图匹配unicode正则表达式,但不知何故\p{L}无法工作Javascript 正则表达式与unicode字符不匹配,javascript,Javascript,我试图匹配unicode正则表达式,但不知何故\p{L}无法工作 <script> var input="teëst"; var re = /^[a-zA-Z-. \pL]{2,32}$/; var is_valid=input.match(re); if(is_valid){ document.write('Regularexpression valid'); } else { document.write('
<script>
var input="teëst";
var re = /^[a-zA-Z-. \pL]{2,32}$/;
var is_valid=input.match(re);
if(is_valid){
document.write('Regularexpression valid');
} else {
document.write('Regularexpression invalid');
}
</script>
您可以使用:
var re = /^[a-zA-Z\u00C0-\u017F-. \pL]{2,32}$/;
它使用unicode匹配,请尝试使用以下正则表达式:
var re = /[^\x00-\x7F]+/;
我在javascript在线正则表达式检查上的google搜索将我带到了regex101.com,这验证了我的regexp,所以在创建这个问题的过程中,我认为我在代码的其他地方做错了什么。指出目前还不支持unicode 解决方法:
var re = /^[a-zA-Z- \u00c0-\u017e]{2,32}$/;
var re = /^[a-zA-Z- \u00c0-\u017e]{2,32}$/;
不是你,是ECMA做错了;)Js正则表达式不支持unicode属性。另请参阅,我在javascript在线正则表达式检查上的google搜索将我带到,这验证了我的正则表达式,所以我认为我做错了什么。我预计1984年会出现这样的问题,但2016年不会。然而;感谢@georg花时间让我意识到这一点。