我正在使用以下 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
示例在:http : //jsfiddle.net/PR4T2/1/
问题:
有什么方法可以使正则表达式“对UTF-8 不敏感”,以便让用户使用 UTF 字符?
我知道 JS 验证还不支持 UTF,但我想知道是否有任何解决方法。我也不想手动排除所有非法字符,例如:
var regexp = /^((?![0-9\~\!\@\#\$\%\^\&\*\(\)\_\+\=\-\[\]\{\}\;\:\"\\\/\<\>\?]).)+$/;
编辑:
标准是字符:az、空格、\、' 和任何其他可以在用户名字/姓氏中找到的 UTF 字符,如这里。
我正在寻找更通用的东西,比如PHP 中的\p{xx}音序器