And*_*rew 77 javascript regex literals
我认为这是一个简单的问题.
我试图在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');
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为?
字符....我试图逃避它\
,但这也不起作用.有没有其他方式可以使用?
字面而不是特殊字符?
Jon*_*Jon 128
你需要用两个反斜杠来逃避它
\\?
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此
http://www.trans4mind.com/personal_development/JavaScript/Regular%20Expressions%20Simple%20Usage.htm
CMS*_*CMS 18
你应该使用双斜杠:
var regex = new RegExp("\\?", "g");
Run Code Online (Sandbox Code Playgroud)
为什么?因为在JavaScript中\
它也用于转义字符串中的字符,所以:"\?" 变为:"?"
而且"\\?"
,成为 "\?"
jig*_*ggy 15
您可以使用斜杠而不是引号来划分正则表达式,然后使用单个反斜杠来转义问号.试试这个:
var gent = /I like your Apartment. Could we schedule a viewing\?/g;
Run Code Online (Sandbox Code Playgroud)
每当您有一个已知模式(即您不使用变量来构建 RegExp)时,请使用文字正则表达式表示法,您只需要使用单个反斜杠来转义特殊的正则表达式元字符:
var re = /I like your Apartment\. Could we schedule a viewing\?/g;
^^ ^^
Run Code Online (Sandbox Code Playgroud)
每当您需要动态构建 RegExp 时,请使用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");
Run Code Online (Sandbox Code Playgroud)
如果您使用String.raw
字符串文字,您可以\
按原样使用(请参阅使用模板字符串文字的示例,您可以在其中将变量放入正则表达式模式中):
var re = /I like your Apartment\. Could we schedule a viewing\?/g;
^^ ^^
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
88465 次 |
最近记录: |