Javascript 如何在使用变量时向正则表达式添加元字符
正如您从示例中看到的,我传递了一个名为snoop的变量,以与函数中的单词参数一致。我希望我为word输入的任何值都放在同一类型的元字符下。问题是每次我试图在ie这个词周围加上元字符( var snoop=newregexp(/\bword/,'gi'))例如,它不起作用。正确的编码方式是什么Javascript 如何在使用变量时向正则表达式添加元字符,javascript,regex,Javascript,Regex,正如您从示例中看到的,我传递了一个名为snoop的变量,以与函数中的单词参数一致。我希望我为word输入的任何值都放在同一类型的元字符下。问题是每次我试图在ie这个词周围加上元字符( var snoop=newregexp(/\bword/,'gi'))例如,它不起作用。正确的编码方式是什么 var gill = ['airplane','airport','apple','ball'] function auto (word, array){ var geo = array.join
var gill = ['airplane','airport','apple','ball']
function auto (word, array){
var geo = array.join(" ")
var snoop = new RegExp(word, 'gi' )
var gip = geo.match(snoop)
console.log(gip)
}
auto("ai", gill)
newregexp(/\bword/,'gi')
中的“word”只是文字字符串“word”。它不是对变量word
的引用。您可以使用字符串创建一个新的RegExp
对象,该字符串可以使用串联构建
请记住,您需要使用双反斜杠,因为字符串文字中的单个反斜杠开始一个字符。例如,“\b”
是退格字符。特殊的转义序列“\\”
会产生反冲,这是正则表达式中需要的
下面是一个例子,它产生了我认为您试图实现的目标:
var snoop = new RegExp("\\b" + word, "gi")
可以使用此技术将变量插值到正则表达式的任何部分:
// Capture one or more of the characters in `validCharacters` after an equals-sign.
new RegExp("=([" + validCharacters + "]+)")
你说的“元字符”是什么意思
var snoop=newregexp(“\b”+word,“gi”)
?这些[]、^、$、*等…使用字符串版本的RegExp
;e、 例如,newregexp(“^”+word)
谢谢,但是你能解释一下为什么我必须对元字符“\b”使用双反斜杠吗?例如var snoop=new RegExp(“\\b”+单词,“gi”)您能更深入地了解我为什么使用双斜杠吗?我还想学习通用格式,这样我就可以自由添加像wwhat一样多的元字符,如果它想这样做的话:/newregexp(\b\w^[word]$/)。语法是什么?所以这个双反斜杠也表示\B、\w、\s?谢谢你的帮助!双反斜杠实际上只是产生一个反斜杠。