车辆登记号码的正则表达式,应排除特殊字符

时间:2017-02-27 12:54:53

标签: javascript angularjs

我使用过这种模式,但它允许使用特殊字符。如何排除它们。

ng-pattern ="/^([A-Z]{2,3}[0-9]{2}[A-Z0-9]{1,4}[0-9]{1,4})|([A-Z]{2}[0-9]{3})|([A-Z]{2}[0-9]{2}[A-Z]{1}[0-9]{1,4})|[^@]|$/"

2 个答案:

答案 0 :(得分:0)

[^@]将匹配除@之外的任何字符。摆脱这种情况,它应该匹配字母数字字符串。

查看示例输入+预期输出会有所帮助,但如果有帮助,我会有一个工作示例here

答案 1 :(得分:0)

提到的模式包含5个可能的组件,这些组件由OR |

分隔
  1. ^([AZ] {2,3} [0-9] {2} [A-Z0-9] {1,4} [0-9] {1,4}) - 以模式开始然后接受特殊字符或任何其他字符
  2. ([A-Z] {2} [0-9] {3}) - 匹配任何模式此模式算出任何其他模式
  3. ([AZ] {2} [0-9] {2} [AZ] {1} [0-9] {1,4}) - 匹配任何模式此模式算上任何其他模式
  4. [^ @] - 匹配任何不包含@
  5. 的模式
  6. $ - 匹配任何模式
  7. 如果我理解正确(我不确定第4个组件)我相信你想要组件^(1 | 2 | 3)$,其中组件1没有前缀^

    /^(([A-Z]{2,3}[0-9]{2}[A-Z0-9]{1,4}[0-9]{1,4})|([A-Z]{2}[0-9]{3})|([A-Z]{2}[0-9]{2}[A-Z]{1}[0-9]{1,4}))$/