簡體   English   中英

正則表達式Javascript,用於匹配第一個特定字符之前的字母數字字符串中的5個非連續數字

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

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