Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的lookback?_Javascript_Regex - Fatal编程技术网

javascript中的lookback?

javascript中的lookback?,javascript,regex,Javascript,Regex,我想使用正则表达式来匹配和替换文件名和右括号之间的任何内容 我写了一个正则表达式: /(?<=imagecheck.php)[^)]*/ Javascript中不支持向后查找。您可以使用捕获组来捕获“imagecheck.php”之后的文本: .match(/imagecheck.php([^)]*)/) 结果将出现在返回数组的索引1中(如果存在匹配项) 这是一个在“imagecheck.php” 无需在javascript中查找,您可以替换文件名和结束参数之间的所有内容,如下所示:

我想使用正则表达式来匹配和替换文件名和右括号之间的任何内容

我写了一个正则表达式:

/(?<=imagecheck.php)[^)]*/

Javascript中不支持向后查找。您可以使用捕获组来捕获
“imagecheck.php”
之后的文本:

.match(/imagecheck.php([^)]*)/)
结果将出现在返回数组的索引1中(如果存在匹配项)

这是一个在“imagecheck.php”


无需在javascript中查找,您可以替换文件名和结束参数之间的所有内容,如下所示:

str = str.replace(/imagecheck.php\([^)]*\)/, "imagecheck.php(whatever)");
或者,您可以使用捕获组和编号引用来避免重复初始模式:

str = str.replace(/(imagecheck.php)\([^)]*\)/, "$1(whatever)");

虽然Javascript本身不支持正则表达式中的lookbehind,但我们可以引入一个更强大的Javascript正则表达式引擎

var pattern = XRegExp('/(?<=imagecheck.php)[^)]*/', 'g'); // g is the global flag
XRegExp.replace(input, pattern, replacement);

var pattern=XRegExp('/(?XRegExp不支持直接查找。为此,您需要使用之前由@arxanas链接到的加载项脚本:。此外,XRegExp在其模式字符串中不使用正斜杠分隔符。

您尝试过谷歌吗?我想您不需要regex,但我需要确切了解您想要什么。您可以发布一些示例吗你想干什么?你一定是在开玩笑,阿萨纳斯,那肯定会让我的脑袋爆炸。@WaleedKhan不,我们用bing;-)@NHAHDH:我想问题总是这么说的;)在咆哮之前一定要检查!@Anonymous:你想替换什么?@Anonymous:你不清楚你想用什么替换它。我可以只转储一个示例,但它根本没有意义。@NHAHDH:我不确定我们是否迫切需要知道替换是什么。正则表达式不包含匹配组,因此可以公平地假设它只是一些我们作为回答者不关心的常量字符串。我想用我喜欢的任何输入来替换它,例如一个查询字符串,如?reload=yes&boost=123它应该替换一个旧的查询字符串,但如果文件没有,它也应该匹配一个空白……但是这个答案比我的XRegExp答案更快,更具依赖性-免费且全面的cleaner:)@Anonymous:如果你想保持干爽,你可以使用
newregexp(prefix+“[^)]*”
的形式创建regexp,然后运行
str.replace(pattern,prefix+“{which suffix}”)
这是对@Matchu的回复。哎呀。
str = str.replace(/(imagecheck.php)\([^)]*\)/, "$1(whatever)");
var pattern = XRegExp('/(?<=imagecheck.php)[^)]*/', 'g'); // g is the global flag
XRegExp.replace(input, pattern, replacement);