Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 是否用正则表达式替换查询字符串?_Javascript_Regex - Fatal编程技术网

Javascript 是否用正则表达式替换查询字符串?

Javascript 是否用正则表达式替换查询字符串?,javascript,regex,Javascript,Regex,我有一个查询字符串参数,如下所示: Nr=AND(OR(abc:def),OR(ghi:jkl),OR(mno:pqr).....so on) 我想替换这个查询字符串,以获取在冒号之间分隔的OR条件内的值 任何帮助都将不胜感激 下面的正则表达式将捕获或函数中的文本,并使用:作为分隔符将其存储到两个单独的组中 OR\(([^:]*):([^)]*)\) 说明: 或\(匹配文本或() ([^::]*)不属于:字符零次或多次。最后,它将匹配的字符存储到group1中 :文字: ([^)]*)不

我有一个查询字符串参数,如下所示:

Nr=AND(OR(abc:def),OR(ghi:jkl),OR(mno:pqr).....so on)
我想替换这个查询字符串,以获取在冒号之间分隔的OR条件内的值


任何帮助都将不胜感激

下面的正则表达式将捕获或函数中的文本,并使用
作为分隔符将其存储到两个单独的组中

OR\(([^:]*):([^)]*)\)

说明:

  • 或\(
    匹配文本
    或(

  • ([^::]*)
    不属于
    字符零次或多次。最后,它将匹配的字符存储到group1中

  • 文字:

  • ([^)]*)
    不是文字
    字符零次或多次。最后,它将匹配的字符存储到group2中

  • \)
    匹配文字
    字符


这不是有效的JavaScript或正则表达式。是否缺少任何标记?是否尝试了某些操作?此查询字符串基于搜索,并附加表单值以从后端获取结果。您预期的输出是什么?
或\([^:]*):([^)]*)\)
这将捕获OR函数中的文本并将其存储到两个单独的组中。它完全匹配所有OR值。但数组值仅返回第一个OR值…对于Ex.和(或(或(abc:def),或(ghi:jkl),或(mno:pqr)。上面的正则表达式只返回abc:def值。在演示中,它与这两个值都匹配。我认为,一些修改只会对你的代码。你可以把它当作另一个问题来问。+1是带解释和工作演示的简明解决方案。:)