用于用户名验证的正则表达式:允许chrarchters,数字和特殊字符(-_。)与至少一个charachter

时间:2013-05-01 12:31:05

标签: javascript regex

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

到目前为止我有这个但它仍然允许在字符串

中间的阿拉伯语和中文字符
/^[a-zA-Z]|\d+[-_.]$/

3 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

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

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

答案 1 :(得分:1)

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

您想要的更像是以下内容(请注意-.如何被转义)

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

即。 String 以字母开头,然后有任意数量的字母数字连字符下划线< / em>或 dots 直到结尾字符串以字母结尾并且包含任意数量的字母,< em>数字连字符下划线

答案 2 :(得分:1)

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

/^[-a-zA-Z0-9_.]*[a-z][-a-zA-Z0-9_.]*$/