正则表达式拒绝所有数字并拒绝冒号

时间:2018-10-10 15:25:15

标签: angularjs regex

我正在尝试使用正则表达式

  • 拒绝输入是否为全数字
  • 接受字母数字化
  • 拒绝冒号':'

我尝试过,

ng-pattern="/[^0-9]/"

ng-pattern="/[^0-9] [^:]*$/" 

例如

美国街1街区”必须接受

111132322 ”必须被拒绝

第1大块:”必须被拒绝

2 个答案:

答案 0 :(得分:1)

您可以使用

ng-pattern="/^(?!\d+$)[^:]+$/"

请参见regex demo

要仅在字符串末尾禁止:,请使用

ng-pattern="/^(?!\d+$)(?:.*[^:])?$/"

请参见another regex demo

模式匹配

  • ^-字符串的开头
  • (?!\d+$)-字符串末尾没有1+数字
  • [^:]+-除:之外的一个或多个字符
  • (?:.*[^:])?-与1个或0个匹配项匹配的可选非捕获组
    • .*-除换行符以外的任意0+个字符,并且尽可能多
    • [^:]-除:以外的任何其他字符(如果您不想匹配空字符串,请替换(?:)?
  • $-字符串的结尾。

答案 1 :(得分:1)

根据注释,您要匹配冒号以外的任何字符。

这应该可以完成工作:

ng-pattern="/^(?!\d+$)[^:]+$/"