Javascript 正则表达式与unicode字符不匹配

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('

我试图匹配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('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花时间让我意识到这一点。