Javascript 有人能解释一下String.match(RegEx)在这个问题上是如何工作的吗?
例如,我有一个“cid=5”的输入,这个函数的输出是一个数组({cid=5,5})。我对结果感到困惑。有人能帮我解释一下这个问题吗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
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,}。