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