2016-07-07 203 views
1

我想檢查一個字符串檢查字符串

- v{number} 

因此,例如

hello world   false 
hello world - v2  true 
hello world - v  false 
hello world - v88  true 

不完全知道如何去這樣做的正則表達式的結束而結束。

var str = 'hello world - v1'; 
var patt = new RegExp("/^ - v\d*$/"); 
var res = patt.test(str); 
console.log(res); 

我該如何解決上述RegEx問題?

+3

使用' - v \ d + $'....... – rock321987

+0

你鏈接到一個網頁在我的答案,但現在您的評論已經一去不復返了。注意我更新解釋不需要'/'和雙重轉義'\ d'。 – fedorqui

+0

您可以使用'var patt = new RegExp(「 - v [0-9] + $」);' –

回答

3

只要使用這個沒有在一開始

- v\d+$ 

這樣檢查別的你確保它與- v後面至少一個數字結束。看到它住在https://regex101.com/r/pB6vP5/1

然後,你的表達必須是:

var patt = new RegExp("- v\\d+$"); 

由於stated by anubhava in another answer

  • 無需/
  • 需要雙轉義\d

var str = 'hello world - v15'; 
 
var patt = new RegExp("- v\\d+$"); 
 
var res = patt.test(str); 
 
console.log(res);

+0

什麼是m標誌?你也需要在答案中包含它。 –

+0

@PraveenKumar我不知道你爲什麼刪除了你的答案,這個邏輯對我來說似乎是正確的。 –

+1

@PraveenKumar它是用於多行匹配。這樣你可以在regex101.com中包含不同的行,並且它們都是單獨匹配的。 – fedorqui