小白问个正则怎么写?

仙乐无道
  • 93

规则:
开头是两个大写英文,后面是数字,数字的中间可以输入字符(*),字符(*)是必须包含的,字符(*)必是这个顺序组合,且不能包含汉字。
这种验证,怎么写?

预期能匹配上 的示例 :
SA333(*)6222
SA3336222(*)
SA(*)3336222

预期不能匹配 的示例 :
SA3336222
SA333*()6222
SA333*62()22
333(*)6222 等等

回复
阅读 570
5 个回答

^[A-Z]{2}[0-9]*+\(\*\)[0-9]*$

数字中间才能有 *

/^[A-Z]{2}\d(?:\**\d)*$/
// 就把各种情况考虑进去就行
var reg = /^[A-Z]{2}((\d+\(\*\))|(\d+\(\*\)\d+)|(\(\*\)\d+))$/
reg.test('SA333(*)6222')
reg.test('SA3336222(*)')
reg.test('SA(*)3336222')

reg.test('SA3336222')
reg.test('SA333*()6222')
reg.test('SA333*62()22')
reg.test('333(*)6222')

稍微调整下,加个括号:
^[A-Z]{2}\d(?:\(\*\)*\d)*$

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏