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