我已将我的值存储在变量中:
var myvalue = "hello bye";
var myText = "hellobye is here and hello-bye here and hello.bye"
如何查看myvalue
的变体是否出现在文字中?
我正在使用这种模式:
hello[-. ]*?bye
但是我不能像这样破坏我的变量值。还有一件事,如果我的值包含两个以上的元素怎么办?比如hello bye hi
答案 0 :(得分:0)
您可以使用/\s+/g
替换所有空白块(仅与[-.\\s]*?
匹配)以创建正则表达式以匹配myvalue
的变体:
var myvalue = "hello bye";
var myText = "hellobye is here and hello-bye here and hello.bye"
console.log(myText.match(new RegExp(myvalue.replace(/\s+/g, '[-.\\s]*?'), 'g')));

答案 1 :(得分:0)
我认为这样的事情就是你所追求的。如果你想要解释,请发表评论,我会尽力而为。
var myvalue = "hello bye";
var searchReg = new RegExp('(' + myvalue.replace(/ /g, ')[-. ]*?(') + ')', 'g');
console.log(searchReg.source);
//-> (hello)[-. ]*?(bye)
var myText = "hellobye is here and hello-bye here and hello.bye";
console.log(myText.replace(searchReg, '$1^^^^^$2'));
// -> hello^^^^^bye is here and hello^^^^^bye here and hello^^^^^bye
如果您不需要反向引用,则更容易阅读:
var searchReg = new RegExp(myvalue.replace(/ /g, '[-. ]*?'), 'g');