Например, у меня есть строка "test_mystring". Теперь я хочу сначала проверить, начинается ли эта строка с «test_», и если она возвращает остальную часть строки, в этом случае «mystring».Javascript, строка регулярного выражения?
Как достичь этого?
Например, у меня есть строка "test_mystring". Теперь я хочу сначала проверить, начинается ли эта строка с «test_», и если она возвращает остальную часть строки, в этом случае «mystring».Javascript, строка регулярного выражения?
Как достичь этого?
Обычно можно было бы использовать positive lookbehind assertion:
(?<=^test_).*
, который соответствовал бы ничего (.*
), если это сразу после test_
в начале строки (^
).
Однако JavaScript не поддерживает просмотра назад, поэтому вам нужно использовать capturing group:
var myregexp = /^test_(.*)/;
var match = myregexp.exec(subject);
if (match != null) {
result = match[1];
} else {
result = "";
}
Это очень помогло, так как я знаю также, что после этого в этом примере «test_» появляются только буквы, которые я немного изменил. Поэтому я закончил использование^test _ ([a-zA-Z] +) $. Исправьте меня, если я ошибаюсь. – user3921420
Если бы я мог использовать любую из «позитивных lookbehind» или «групп захвата», какая из них будет более эффективной? –
if(str.match(("test_")) != null)
str.replace(\1,'');
Первая линия выглядит на матч,
Если найден второй строке заменяет его ' '
\ 1 соответствует любым требованиям ("test_"), который является самой строковой константой.
С другой стороны, это может быть достигнуто без Regex
с помощью простого Javascript
фрагмента кода, как показано ниже:
// original string
var str = "test_mystring";
// result string
var res;
// this single line does the job
if(str.substring(0, 5)=="test_) res=str.substring(5);
Надеется, что это может помочь.
Что вы попробовали? –
https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions – cl3m