[英]Ignore character in regex
我想在下面的正则表达式中忽略 0。 目前,正则表达式返回一个数组并将字符拆分为 n 位数字。 我希望正则表达式忽略字符 0。
var n = 2
var str = '123045';
var regex2 = new RegExp(`.{1,${n}}`,'g');
var reg = str.match(regex2)
实现此目的的一种方法是在执行匹配之前删除0
。 这可以通过使用.replace()
来完成,如下所示:
const n = 2 const str = '123045'; const regex2 = new RegExp(`.{1,${n}}`, 'g'); const reg = str.replace(/0/g, '').match(regex2); console.log(reg); // ['12', '34', '5']
要忽略前导零,您可以为匹配数组中的每个元素匹配0
后跟n
个数字(使用.map()
)和.replace()
通过在组中捕获剩余数字并使用组作为替代:
const n = 2 const str = '123045'; const regex2 = new RegExp(`.{1,${n}}`, 'g'); const reg = str.match(regex2).map(m => m.replace(/0(\\d+)/g, '$1')).join('').match(regex2); console.log(reg); // ['12', '30', '45']
最好的方法是使用替换,
但是如果你想使用正则表达式 try (?!0)[\\d]
它会给你匹配 1,2,3,4,5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.