这是关于正则表达式的问题,两个小作业,我不是很清楚自己写的对不对,求大神帮忙修改
问题描述:
i) numbers between 99 and 9999999 (inclusive) with optional commas (e.g. 1,250)
这个问题我自己是这么写的
/^(\d,\d{3},\d{3}|\d\d{0,3}\d{2,3}|\d,\d{3}|99)$/
但是我觉得写的不是很好,因为当0出现在开头也会被匹配进去。
ii) a national insurance number (e.g. XP145237B or GG540672Y),
^[A-Z0-9A-Z]*$
这个我测试的时候只能匹配一次,多次匹配的话就不行,问一下是什么原因?
答
^(99|[1-9]((,(?=\d{3}(,|$)))?\d){2,6})$
^([A-Z][0-9A-Z]+(\s+|$))+$
答
let reg=/^(\d,\d{3},\d{3}|\d\d{0,3}\d{2,3}|\d,\d{3}|99)$/
reg.test('1,234') // true
reg.test(',234') // false
reg.test('1234,567') // false
reg.test('1,234567') // false
^([A-Z][0-9A-Z]+(\s+|$))+$