4

是否可以创建一个正则表达式以允许非 ascii 字母与拉丁字母一起使用,例如中文或希腊符号(例如允许 A汉语AbN汉语)?

我目前有以下^[\w\d][\w\d_\-\.\s]*$只允许拉丁字母。

4

1 回答 1

6

在 .NET 中,

^[\p{L}\d_][\p{L}\d_.\s-]*$

相当于您的正则表达式,另外还允许其他 Unicode 字母。

解释:

\p{L}是 Unicode 属性“字母”的简写。

警告:我认为您不想允许下划线作为初始字符(仅在第二个字符类中存在证明)。由于\w包含下划线,因此您的正则表达式确实允许它。您可能希望将它从我的解决方案中的第一个字符类中删除(当然,它包含在\p{L}中)。

在 ECMAScript 中,事情并不那么容易。您必须定义自己的 Unicode 字符范围。幸运的是,StackOverflow 的一位用户已经站出来设计了一个 JavaScript 正则表达式转换器:

https://stackoverflow.com/a/8933546/20670

于 2012-10-25T13:14:37.510 回答