1

我使用这个正则表达式来匹配任何只包含英文字母的字符串/^[a-zA-Z\s]+$/

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

任何想法 ?

4

3 回答 3

3

只需像这样在字符类中添加-和:.

/^[-.a-zA-Z\s]+$/
于 2013-01-09T04:49:47.513 回答
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 中范围)

.inside[.]只是一个点,但 outside 表示任何字符(甚至是不可见的字符)。

于 2013-01-09T05:02:00.017 回答
0

正则表达式/^[a-zA-Z\s\-\.]+$/将匹配您需要的内容。

于 2013-01-09T04:50:21.100 回答