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

时间:2016-02-25 09:31:10

标签: 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('Regularexpression invalid');
    }
</script>

Plnkr.co:

https://plnkr.co/edit/3PCMxqCnwsyrueYQbB8q?p=preview

我做错了什么?

更新

https://stackoverflow.com/a/280762/989121

解决方法:

    var re = /^[a-zA-Z- \u00c0-\u017e]{2,32}$/;

3 个答案:

答案 0 :(得分:0)

我的谷歌搜索javascript在线正则表达式检查带我到regex101.com,这验证了我的正则表达式,所以在创建这个问题期间我认为我在代码中的其他地方做错了。尚不支持指出unicode。

https://stackoverflow.com/a/280762/989121

解决方法:

    var re = /^[a-zA-Z- \u00c0-\u017e]{2,32}$/;

答案 1 :(得分:-1)

您可以使用:

var re = /^[a-zA-Z\u00C0-\u017F-. \pL]{2,32}$/;

它使用unicode匹配,See here

答案 2 :(得分:-1)

尝试使用此正则表达式:

var re = /[^\x00-\x7F]+/;