我有一个问题。
如果我尝试:
var stringTest = "stuff stuffthatIwant more stuff";
var stringRegex = stringTest.match("stuff (.*?) more");
stringRegex [1]返回:" stuffthatIwant"。
但如果我将代码更改为:
var stringTest = "stuff stuffthatIwant ? some stuff";
var stringRegex = stringTest.match("stuff (.*?) \?");
stringRegex [1]返回:" stuffthatIwant?一些东西"。
我该怎么做才能使用"?"就像我使用"更多"在第一个例子?
答案 0 :(得分:0)
将正则表达式文字传递给String.match()
方法:
/stuff (.*?) \?/
请参阅regex demo
将字符串传递给match
方法时,它用于使用RegExp
构造函数构建正则表达式对象,然后所有反斜杠应加倍。请参阅String.match()
MDN reference:
如果传递了非RegExp对象
obj
,则使用RegExp
将其隐式转换为new RegExp(obj)
。
document.body.innerHTML = "stuff stuffthatIwant ? some stuff".match(/stuff (.*?) \?/)[1];