我使用此正则表达式匹配任何仅包含英文字母/^[a-zA-Z\s]+$/
现在我需要编辑它以匹配破折号' - '和点'。'还有英文字母。 字符串可能包含短划线或点或非(只是字母)。
任何想法?
答案 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\-\.]+$/
将符合您的需求。