正则表达式 - 字母,数字和符号

时间:2012-10-20 13:56:04

标签: jquery regex

我是regex的新手,并尝试为仅由以下内容组成的字符串创建表达式:

  • 字母
  • 下划线符号
  • 期间符号(句号)

到目前为止,我有这个:

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

正如我所说,我相当新,所以期待这是完全错误的!

感谢。

2 个答案:

答案 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.]+$