2016-07-07 101 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