gpt4 book ai didi

javascript - 涉及转义符号的正则表达式

转载 作者:行者123 更新时间:2023-11-28 06:02:34 25 4
gpt4 key购买 nike

我有一个问题。

如果我尝试:

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 ?一些东西”。

我应该怎么做才能使用“?”就像我在第一个示例中使用“更多”一样?

最佳答案

将正则表达式文字传递给 String.match() 方法:

/stuff (.*?) \?/

请参阅regex demo

当您将字符串传递给 match 方法时,它用于通过 RegExp 构造函数构建正则表达式对象,并且所有反斜杠都应加倍。请参阅String.match() MDN reference :

If a non-RegExp object obj is passed, it is implicitly converted to a RegExp by using new RegExp(obj).

document.body.innerHTML = "stuff stuffthatIwant ? some stuff".match(/stuff (.*?) \?/)[1];

关于javascript - 涉及转义符号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37158803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com