我正在尝试创建一个名称验证正则表达式,允许用户使用St. Germain
这样的名称,但我不想要只有.
这样的句点的名称接受。
我当前的正则表达式为/^[A-Za-z\ -\.\']+$/
答案 0 :(得分:1)
取自@Mong Zhu的例子,但允许第一个单词也没有点:
\w+\.?\s?\w+
答案 1 :(得分:0)
您当前的正则表达式有一个潜在的不需要的错误\ -.
,它将匹配从空格到点的范围内的任何字符。我不确定这是否是预期的行为,如果是这样,你可以使用下面的第二个正则表达式。
版本1
^(?!\.+$)[a-zA-Z .'-]+$
版本2
^(?!\.+$)[a-zA-Z -.']+$
username
.
Something.a
...
.Some
some. some
some.
注意:以下只显示匹配
username
Something.a
.Some
some. some
some.
^
在行首处断言位置(?!\.+$)
否定前瞻确保后面的内容不是点字符\.
字面上,一次或多次,在行尾声明结束位置[a-zA-Z .'-]+
集a-zA-Z .'-
中任意一个<无限次$
断言行尾的位置您可能希望使用p{L}
代替a-zA-Z
来接受外国字符