[英]Regular Expression to match a string of numbers and dash in javascript
[英]Regular expression to match only numbers after the last dash
我真的很親密,但無法完全了解最后一件事。 我試圖讓它只匹配沒有連字符的數字。
例如,以下顯示了括號中的所需匹配項:
one (no match)
one-1 (1)
one-two (no match)
one-two-2 (2)
one-two-23 (23)
one-two-23456 (23456)
one-two-three (no match)
one-two-three-1 (1)
one-two-three-23 (23)
one-0-two-three-2343 (2343)
one-0-44-2343233 (2343233)
one-0-two-three-234and324 (no match)
到目前為止,我已經嘗試了幾種模式,這是結果。
這很接近,但匹配項包括連字符。
-\d+$
我也嘗試過此方法,它可以解決連字符問題,但是僅在連字符后匹配2個或多個數字。 例如,它在“ one-1”中不匹配“ 1”,但在“ one-12”中匹配“ 12”。
[^-]\d+$
我想指出的是,我正在使用javascript字符串replace()方法。
在支持后向支持的PCRE語言中,您可以簡單地進行后向支持:
(?<=-)\d+$
示例: https : //regex101.com/r/dW6wP3/1
但是,由於您使用的是Javascript(不支持lookbehinds),因此可以使用捕獲組來捕獲所需的內容:
(?:-)(\d+)$
范例: https : //regex101.com/r/zP1cO6/1
您可以這樣使用它:
var text = "one-two-23";
console.log(text.match(/(?:-)(\d+)$/)[1]); // 23
編輯:由於您要替換 ,這會改變情況。 您需要執行以下操作:
var text = "one-two-23";
if (/-\d+$/.test(text)) {
console.log(text.replace(/\d+$/, ''));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.