这是关于正则表达式的问题,两个小作业,我不是很清楚自己写的对不对,求大神帮忙修改

问题描述:

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]*$
这个我测试的时候只能匹配一次,多次匹配的话就不行,问一下是什么原因?![图片

说明](https://img-ask.****.net/upload/201901/06/1546786772_994536.png)

^(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+|$))+$