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

5

我刚接触正则表达式,现在想要创建一个只包含以下内容的字符串的表达式:

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

目前我有这个:

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

我相信你已经注意到了,我是一个新手,所以我的翻译可能有误。

谢谢。


2
您可能还想尝试使用 CodeReview.SE 来处理这种类型的问题。 - Jeroen
[\w\.]正则表达式(MDN) - David Thomas
2个回答

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

编辑:David Thomas提供了一个不错的替代方案:/^[\w.]+$/i——可能会出现本地化问题。

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

在字符类中,句点不需要转义(如果您使用:http://jsfiddle.net/pvgTT/1/,则与此无关)

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

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


2
你需要更多的是:
  • 在开头添加一个 ^ 以匹配字符串的开头
  • 在结尾添加一个 $ 以匹配字符串的结尾
  • 对集合进行乘法运算,以便可以匹配多个字符
+ 乘法运算使集合匹配一个或多个字符。逗号不应该出现在集合中,因为你不想匹配逗号。在集合内部,._ 不需要转义:
^[a-zA-Z0-9._]+$
\w代码匹配字母、数字和下划线,因此您可以使用:
^[\w.]+$

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接