簡體   English   中英

忽略正則表達式中的字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM