我在一个客户端javascript中遇到了以下正则表达式:
([^?=&]+)(=([^&]*))?
当我通过正则表达式测试器(firefox附加组件)运行它时,我得到一个用一种颜色突出显示的URL的查询字符串的值,问号和&符号根本没有突出显示,其余颜色用另一种颜色突出显示
我不确定它是匹配一种颜色还是另一种颜色或两种颜色,但是我使用替换选项并且没有任何内容被替换。
这只是我提问的开始。完整的代码是:
var linkObj = new Object();
jQuery(this).attr('href').replace(
new RegExp( "([^?=&]+)(=([^&]*))?", "g" ),
function( jQuery0, jQuery1, jQuery2, jQuery3 ){
linkObj[ jQuery1 ] = jQuery3;
}
);
函数(jQuery0, jQuery1, jQuery2, jQuery3)
中的4个参数是什么?
任何帮助都将不胜感激。
谢谢。
答案 0 :(得分:3)
似乎打破了网址的GET部分。
([^?=&]+) # 1 or more characters, exclusive of ?, = or &
(= # = sign
([^&]*) # any character not a &, 0 or more times
)? # but optional
function
是一个回调,替换可以接受正则表达式调用。每个参数都是在正则表达式匹配中找到的不同值。然后,该函数可以返回replace
方法应替换的结果。所以,给定?foo=bar
:
foo
)=bar
)bar
)