4

我是正则表达式的新手,并尝试为仅包含以下内容的字符串创建表达式:

  • 字母
  • 数字
  • 下划线符号
  • 句号(句号)

到目前为止,我有这个:

/[a-zA-Z0-9,\.\_]/;

正如我所说,我还很新,所以希望这是完全错误的!

谢谢。

4

2 回答 2

13
/^[a-z0-9._]+$/i

编辑:大卫托马斯提出了一个不错的选择:/^[\w.]+$/i- 可能的语言环境问题。

你有一个逗号,我不认为你打算有,但如果你这样做,就把它放回去。修饰符使i表达式不区分大小写。

在字符类内部,不需要转义句点(如果您这样做则不相关:http: //jsfiddle.net/pvgTT/1/

您需要^and $(字符串的开头和结尾)来匹配整个字符串。否则,它可以匹配至少有一个这样的字符但也可以有其他字符的字符串。

+(1个或更多)被使用。也可以是*(0个或更多)。要么是必需的,因为字符串的长度是未知的。

于 2012-10-20T14:01:35.853 回答
2

您还需要什么:

  • A^在开头匹配字符串的开头
  • A$在末尾匹配字符串的末尾
  • 集合上的乘数,以便它可以匹配多个字符

乘数使+集合匹配一个或多个字符。逗号不应在集合中,因为您不想匹配逗号。并且不需要在集合中转义._

^[a-zA-Z0-9._]+$

\w代码匹配字母、数字和下划线,因此您可以使用:

^[\w.]+$
于 2012-10-20T14:02:13.833 回答