javascript正则表达式问号(?)未检测到

Gun*_*tel 5 javascript regex

大家好,我试图regex用随机值创建一些.

var data = "demo purpose?";  **OR**  var data = "demo purpose";
var sentence = "can I put these app as demo purpose?";
var re = new RegExp("\\b(" + data + ")\\b", "g");
console.log(sentence.match(re));   // output ["demo purpose"]
Run Code Online (Sandbox Code Playgroud)

在变量data有两个不同的价值demo purpose?demo purpose只有问号.两个控制台都是相同的请任何一个给我提示我应该在这些情况下做什么.

- 谢谢

吖奇说*_*HUō 11

你需要逃避?(即写\\?),否则它将被解释为正则表达式中的量词.

此外,\\b并不是真的有必要,因为它试图匹配一个非空白字符,在这种情况下,没有任何东西,demo purpose?所以sentence.match(new RegExp("\\b(demo purpose\\?)\\b", "g"))将返回null.

如果您想要随机性,请使用Math.random.创建一个数组并获得一个随机整数或0或1(带Math.floor)作为索引.