一尘不染

在JavaScript中验证用户的UTF-8名称

javascript

我正在使用以下JavaScript正则表达式来验证用户的名字和姓氏

var regexp = /^((?=[a-z \']).)+$/i;

var val1 = "Normal Text' Compromised";       // true
var val2 = "UTF Text' Połącz Słońce w Mózu"; // false  <---- UTF-8
var val3 = "Illegal char: Blac & White";     // false

题:

有什么方法可以使正则表达式“ UTF-8不敏感 ”,以允许用户使用UTF字符?

我知道JS验证尚不支持UTF,但是我想知道是否有任何解决方法。我也不想手动排除所有非法字符,例如:

var regexp = /^((?![0-9\~\!\@\#\$\%\^\&\*\(\)\_\+\=\-\[\]\{\}\;\:\"\\\/\<\>\?]).)+$/;

编辑:

条件是字符:az,空格,\,’以及可以在用户的​​名字/姓氏中找到的任何其他UTF字符。

我正在寻找更通用的东西,例如PHP中的 \ p {xx} 音序器


阅读 300

收藏
2020-05-01

共1个答案

一尘不染

该XRegExp库的Unicode插件增加了Unicode字符类的支持(如“\p{L}“),以JavaScript的正则表达式。

2020-05-01