我使用以下JavaScript regexp来验证用户名和姓
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
Run Code Online (Sandbox Code Playgroud)
例如:http://jsfiddle.net/PR4T2/1/
题:
有没有办法让正则表达式" UTF-8不敏感 ",以便让用户使用UTF字符?
我知道JS验证中不支持UTF,但我想知道是否有任何解决方法.我也不想手动排除所有非法字符,如:
var regexp = /^((?![0-9\~\!\@\#\$\%\^\&\*\(\)\_\+\=\-\[\]\{\}\;\:\"\\\/\<\>\?]).)+$/;
Run Code Online (Sandbox Code Playgroud)
编辑:
标准是字符:az,space,\,'以及可以在用户名/姓中找到的任何其他UTF字符,如此处所示.
我正在寻找像PHP中的\ p {xx} sequencer 更通用的东西
要检查用户输入的英文名称是否有效,我通常会将输入与正则表达式匹配,例如[A-Za-z].但是如果使用utf8编码需要支持多语言(如中文,日文等),我怎么能这样做呢?
我想验证我的Ruby on Rails 3应用程序的名称和姓氏,所以我发布了这个问题.有人建议我阅读Falsehoods Programmers Believe About Names文章,现在我遇到了麻烦.
验证姓名的正确方法是什么?
正则表达式是一种方式,但我应该小心什么?你能给我一个概述吗?