我想要一个正则表达式来验证以字母开头然后是数字的字符串,但字符串长度应限制为5个字符。
正在使用的正则表达式:
Validators.pattern('(.*?)[0-9]{4}')
不幸的是,当数字超过5时,它不会给我验证消息(错误消息)。你能检查我的正则表达式并告诉我我在哪里做错了吗?
答案 0 :(得分:2)
.*?
模式匹配任何0+个字符(通过字符,我指的是所有可能的符号,字母,数字),尽可能少,直到第一次出现的后续子模式。
您需要的是匹配字符串开头的单个ASCII字母,然后确保它后面只有4位数字。由于Validators.pattern()
模式默认为锚定,因此您只需使用
Validators.pattern('[A-Za-z][0-9]{4}')
该模式将转换为/^[A-Za-z][0-9]{4}$/
。
请参阅regex demo。