Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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 有人能解释一下String.match(RegEx)在这个问题上是如何工作的吗?_Javascript_Regex - Fatal编程技术网

Javascript 有人能解释一下String.match(RegEx)在这个问题上是如何工作的吗?

Javascript 有人能解释一下String.match(RegEx)在这个问题上是如何工作的吗?,javascript,regex,Javascript,Regex,例如,我有一个“cid=5”的输入,这个函数的输出是一个数组({cid=5,5})。我对结果感到困惑。有人能帮我解释一下这个问题吗 function getParameter(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); var r = location.search.substr(1

例如,我有一个“cid=5”的输入,这个函数的输出是一个数组({cid=5,5})。我对结果感到困惑。有人能帮我解释一下这个问题吗

    function getParameter(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
        var r = location.search.substr(1).match(reg);
        if (r!=null) return (r[2]); return null;
}
谢谢你在下面的评论,但是我仍然对这个问题感到困惑。所以,我将尝试更清楚地表达我的问题。 RegExp对象的第二个参数是'i',这意味着忽略大小写,它将匹配一次并返回一个String对象。那么,为什么它会返回类似{cid=5,,5,}的字符串数组呢

RegExp对象的第二个参数是'i',这意味着忽略大小写,它将匹配一次并返回一个String对象。那么,为什么它会返回类似{cid=5,,5,}的字符串数组呢

本例中使用的正则表达式包括捕获组。如果未设置“g”标志,则从String.match返回的数组包括完整匹配及其相关捕获组

(^ |&)
创建一组字符串或符号开头的捕获组

([^&]*)
创建一个由任何字符组成的捕获组,该字符不是一个与零或多次对应的符号


(&|$)
创建一个由符号和或字符串结尾组成的捕获组

这是否回答了您的问题?您可以分解您的问题,这样您就可以问一个更清楚的问题:目前,我不确定您是否正在尝试正则表达式模式或其他函数?如果你想了解regex模式,请使用并查看解释框我知道RegExp的意思,我不知道为什么它返回一个数组,结果是{cid=5,5,}。