是否可以创建正则表达式以允许非ascii字母和拉丁字母,例如中文或希腊符号(例如,允许A汉语AbN汉语)?
我目前有以下^[\w\d][\w\d_\-\.\s]*$
,只允许使用拉丁字母。
答案 0 :(得分:5)
在.NET中,
^[\p{L}\d_][\p{L}\d_.\s-]*$
相当于你的正则表达式,另外还允许使用其他Unicode字母。
<强>解释强>
\p{L}
是Unicode属性“Letter”的简写。
警告:我认为你想不允许下划线作为初始字符(仅在第二个字符类中存在)。由于\w
包含下划线,因此您的正则表达式确实允许它。您可能希望将其从我的解决方案中的第一个字符类中删除(当然,不包含在\p{L}
中)。
在ECMAScript中,事情并不那么容易。您必须定义自己的Unicode字符范围。幸运的是,一位StackOverflow用户已经出现并设计了一个JavaScript正则表达式转换器: