我是regex的新手,并尝试为仅由以下内容组成的字符串创建表达式:
到目前为止,我有这个:
/[a-zA-Z0-9,\.\_]/;
正如我所说,我相当新,所以期待这是完全错误的!
感谢。
答案 0 :(得分:10)
/^[a-z0-9._]+$/i
编辑:David Thomas提出了一个不错的选择:/^[\w.]+$/i
- 可能的语言环境问题。
你有一个我认为你不打算拥有的逗号,但如果你只是把它放回去。 i
修饰符使表达式不区分大小写。
在角色类中,不需要对句点进行转义(如果你这样做则不相关:http://jsfiddle.net/pvgTT/1/)
您需要^
和$
(字符串的开头和结尾)来匹配整个字符串。否则,它可以匹配至少包含一个这样的字符的字符串,但也可以包含其他字符串。
+
(1或更多)。也可以是*
(0或更多)。要么是必需的,因为字符串的长度是未知的。
答案 1 :(得分:2)
您还需要什么:
^
匹配字符串的开头$
以匹配字符串的结尾 +
乘数使得匹配一个或多个字符。逗号不应该在集合中,因为您不想匹配逗号。 .
和_
不需要在集合中转义:
^[a-zA-Z0-9._]+$
\w
代码与字母,数字和下划线匹配,因此您可以使用:
^[\w.]+$