我需要以
格式为字符串创建正则表达式<whole-number>@<whole-numbers>%
for example:
1@100%,
9@50%,
5@10%,
以下示例无效。
0@100%,
a@50%,
1@abc%,
我创建了一个正则表达式,但它没有按预期工作
([0-9]{1}[@]{1}[0-9]{0,3})
答案 0 :(得分:3)
这应该这样做:
/^\d@\d+%$/
\d
代表数字。 +
表示一个或多个字符
你编写正则表达式的方式,似乎你只需要在@
之后需要3个数字,如果你想要那么你编写它的方式,它应该是这样的:
/^[0-9]{1}@[0-9]{0,3}%$/
您错过了%
字符匹配和锚标记。
否则你可以使用:
/^\d@\d{0,3}%$/
答案 1 :(得分:2)
您希望字符串以1到9(不是0)的一位数字开头,然后是@
,然后是最多3位且以%
结尾的数字。
然后使用:
/^[1-9]@\d{1,3}%$/
console.log('4@55%',/^[1-9]@\d{1,3}%$/.test('4@55%'))
console.log('2@678%',/^[1-9]@\d{1,3}%$/.test('2@678%'))
console.log('22@22%',/^[1-9]@\d{1,3}%$/.test('22@22%'))
console.log('a@11%',/^[1-9]@\d{1,3}%$/.test('a@11%'))
console.log('0@99%',/^[1-9]@\d{1,3}%$/.test('0@99%'))
console.log('3@%',/^[1-9]@\d{1,3}%$/.test('3@%'))
console.log('1@abc%',/^[1-9]@\d{1,3}%$/.test('1@abc%'))