正则表达式使数字,连字符( - )和/或点(。)的组合无效

时间:2013-01-23 15:53:52

标签: regex

目前我有一个正则表达式来验证字母,数字,连字符和/或点。

^[A-Za-z0-9]+(?:[-\\.]?[A-Za-z0-9])$

这使得这些值有效:

"john.doe"
"john123"
"johndoe"
"john-doe"
"john-doe.123"

另外我需要的是拒绝值,这些值只包含数字,连字符或/和点的组合。意味着该值必须至少有一个字母才有效。

这包括:

"123"
"1.2.3"
"1-2-3"
"12.3"

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这个正则表达式应该有效:

/^(?:[0-9][-\.]?)*[A-Za-z](?:[-\.]?[A-Za-z0-9])*$/
  • 强制执行至少一个字母
  • 仅允许连字符和点后跟数字或字母
  • 开头或结尾不允许使用连字符或圆点

Regexr