убегающий вопросительный знак в регулярных выражений в JavaScript
Это простой вопрос, я думаю.
Я пытаюсь найти вхождение строки в другую строку, используя регулярное выражение в JavaScript следующим образом:
var content ="Hi, I like your Apartment. Could we schedule a viewing? My phone number is: ";
var gent = new RegExp("I like your Apartment. Could we schedule a viewing? My", "g");
if(content.search(gent) != -1){
alert('worked');
}
это не работает из-за ? символ....Я пытался убежать от него с , но это не сработало. Есть ли другой способ использовать ? буквально, а не как специальный символ?
4 ответов:
вы должны избежать его с двумя обратными косыми чертами
\?Посмотреть подробнее:
http://www.trans4mind.com/personal_development/JavaScript/Regular%20Expressions%20Simple%20Usage.htm
вы должны использовать двойной Слэш:
var regex = new RegExp("\?", "g");почему? потому что в JavaScript
\также используется для экранирования символов в строке, так: "\?"становится:"?"и
"\?", становится"\?"
вы можете разделять регулярное выражение косыми чертами вместо кавычек, а затем одной обратной косой чертой, чтобы избежать знака вопроса. Попробуйте это:
var gent = /I like your Apartment. Could we schedule a viewing\?/g;
когда у вас есть известный pattern (т. е. вы не используете переменную для построения регулярного выражения), используйте литерал регулярное выражение, где вам нужно только использовать один обратные косые черты, чтобы избежать специальных регулярных выражений метасимволов:
var re = /I like your Apartment\. Could we schedule a viewing\?/g; ^^ ^^всякий раз, когда вам нужно построить регулярное выражение динамически, используйте
RegExpнотации конструктор где вы должны двойные обратные косые черты для них, чтобы обозначить литерал обратная косая черта:var questionmark_block = "\?"; // A literal ? var initial_subpattern = "I like your Apartment\. Could we schedule a viewing"; // Note the dot must also be escaped to match a literal dot var re = new RegExp(initial_subpattern + questionmark_block, "g");обязательно прочитайте:Регулярное Выражение: Описание в MDN.
Comments