2016-07-07 3 views
1

Я хочу, чтобы проверить, если строка заканчиваетсяПроверьте, если строка заканчивается

- v{number} 

Так, например

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

Не совсем уверен, как идти об этом RegEx.

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

Смежные вопросы