JavaScript正则表达式匹配一些特殊字符

时间:2013-01-09 04:48:01

标签: javascript regex

我使用此正则表达式匹配任何仅包含英文字母/^[a-zA-Z\s]+$/

的字符串

现在我需要编辑它以匹配破折号' - '和点'。'还有英文字母。 字符串可能包含短划线或点或非(只是字母)。

任何想法?

3 个答案:

答案 0 :(得分:3)

只需在字符类中添加-.,如下所示:

/^[-.a-zA-Z\s]+$/

答案 1 :(得分:1)

对于-.以及空格

/^[-a-z\s.]+$/i
// "Foo-bar" OK
// "Foo.bar" OK
// "Foo bar" OK
// "Foo - bar" OK
// "Foo.bar-zaz" OK
// "Foo.bar-zaz TROZ" OK

对于-.空格

/^[a-z\s]+$|^[-a-z]+$|^[a-z.]+$/i
// "Foo-bar" OK
// "Foo.bar" OK
// "Foo bar" OK
// "Foo - bar" FAIL
// "Foo.bar-zaz" FAIL
// "Foo.bar-zaz TROZ" FAIL

让我解释一下:

/i忽略大小写,因此您不需要A-Z

|(管道)做或为你做。

在您的字符串开头

^

$直到最后

现在只是内部字符限制[...]

-放在char限制的开头是一个好习惯,因为它以多种方式表示范围,所以放在开头避免错误。

\s空格(不能在JS范围内)

.里面的[.]只是一个点,但外面是指任何角色(甚至是不可见的角色)。

答案 2 :(得分:0)

正则表达式/^[a-zA-Z\s\-\.]+$/将符合您的需求。