[英]Regex Javascript for matching 5 non-consecutive numbers from an alphanumeric string before the first specific character
我正在嘗試在JavaScript中創建一個正則表達式,使其與第一個“-”之前的字母數字字符串中的最后5個非連續數字匹配,如下所示...
以以下兩個字符串為例:
7356CH18PRZ2506-01
45D18A234-02-01
對於上面的每個示例,匹配項將是:
82506
18234
我們使用后5個數字根據客戶的請求在我們的應用程序中創建一個唯一的標識符,並且它們必須是數字。
我只能提取連續的數字,並且由於在每個示例中第一個“-”之前沒有5個連續的數字,因此我的所有嘗試均未成功。
我可能還應該提到,我不是最擅長使用正則表達式的人。 我涉足。
如果有人能指出正確的方向,我將不勝感激。
另外,如果需要,我很樂意闡述我的問題。
您可以使用match + replace
這種方式
let arr = ['7356CH18PRZ2506-01', '45D18A234-02-01', '012-45D18A234-02-01', 'foobar']; let re = /^[^-]*((?:\\d[^\\d-]*){5})-/; for (i=0; i<arr.length; i++) { let m = arr[i].match(re); if (m) { console.log(arr[i], "=>", m[1].replace(/\\D+/g, '')); } }
這里:
match
我們使用正則表達式/^[^-]*((?:\\d[^\\d-]*){5})-/
來匹配前5位數字,它們之間可能有0或多個非數字輸入中的第一個連字符 replace
我們只刪除所有帶有空字符串的非數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.