2015-05-07 5 views
5
var longString = "this string is long but why" 
var shortString = "but why" 

Как я могу проверить, является ли shortString не только содержащимся в longString, но и фактически последней частью строки.Как проверить, является ли строка последней «частью» другой строки?

indexOf == 0 Я использовал, чтобы проверить для начала строки, но не знаете, как получить его конец

+0

'javascript' внутримышечно в предположении? – ptierno

+2

Какой язык программирования вы используете и что вы пробовали до сих пор? Кроме того, этот случай можно решить с помощью простой «подстроки» - почему вы хотите использовать регулярное выражение, которое уступает по эффективности? – alfasin

+0

извините, это javascript – ernerock

ответ

5

Вам не нужно регулярное выражение, если Javascript вы можете просто сделать:

longString.endsWith(shortString) 
+0

'endsWith()' похоже, добавляется с внешней библиотекой. – ptierno

+0

Игнорируйте этот комментарий. Это было добавлено к спецификации ECMAScript 6. Однако не все реализации javascript могут его поддерживать. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith – ptierno

+0

спасибо, что это сработало, но с использованием regexp только для поддержки браузера – ernerock

2

вы можете использовать следующие, если вам нужно регулярное выражение:

var matcher = new RegExp(shortString + "\$", "g"); 
var found = matcher.test(longString); 
+0

«$' необходимо экранировать. Также не нужно глобально проверять одну строку. – ptierno

+0

Спасибо, это сработало отлично – ernerock

+0

С удовольствием :) –

1

вы можете построить regex из shortString и испытания с match:

var longString = "this string is long but why"; 
var shortString = "but why"; 
// build regex and escape the `$` (end of line) metacharacter 
var regex = new RegExp(shortString + "\$"); 
var answer = regex.test(longString); 
// true 
console.log(answer); 

Надеется, что это помогает

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