0

我想允许并以带有数字和 3 个特殊字符的标准英文字符开头,-_.但它必须至少包含一个A-Za-z字符

到目前为止我有这个,但它仍然允许在字符串中间使用阿拉伯文和中文字符

/^[a-zA-Z]|\d+[-_.]$/
4

3 回答 3

2

试试这个正则表达式:

/^[a-zA-Z][a-zA-Z\d-_\.]+$/

这要求第一个字符是a-zA-Z,然后允许字母、数字和您的特殊字符用于任何其他字符。

于 2013-05-01T12:36:02.160 回答
1

您的RegExp /^[a-zA-Z]|\d+[-_.]$/正在检查第一个字符是字母还是最后一个字符是数字、连字符、下划线。

你想要的是更像下面的东西(注意如何-.已经被转义)

/^[a-zA-Z][a-zA-Z\d\-_\.]*$|^[a-zA-Z\d\-_\.]*[a-zA-Z]$/

即 String以字母开头,然后有任意数量的字母数字连字符下划线,直到结尾String以字母结尾,并且在其前面有任意数量的字母数字连字符下划线

于 2013-05-01T12:38:13.140 回答
1

为了[-a-zA-Z0-9_.]至少允许一个[a-z],您只需要[a-z]在中间定义任何数量的其他字符。

/^[-a-zA-Z0-9_.]*[a-z][-a-zA-Z0-9_.]*$/
于 2013-05-01T12:46:31.177 回答