有字符串如下:
手机的饭卡手机的疯狂拉升金光华附近撒旦回复
http://www.xxx.com/骄傲深刻理解的疯狂升级啊对抗疗法。
其中url地址可能是如下三种情况:
http://www.xxx.com/
http://www.xxx.com/mall/default.aspx
http://www.xxx.com/mall/default.aspx?id=2
现在想用js配合正则,将已有参数加入到字符串中,参数是re=100,
所以匹配之后的字符串中url地址部分可能是如下三种情况:
http://www.xxx.com/?re=100
http://www.xxx.com/mall/default.aspx?re=100
http://www.xxx.com/mall/default.aspx?id=2&re=100
求大侠给解
我感觉这个主要是判断有无传参的问题,重点就是判断问号
1)有问号(一般就表示有参数了),那么就加上&name=value
2)没有问号,那么就加上?name=value
if(url.indexOf("?")==-1){url=url+"?re=100";}
else{url=url+"&re=100";}
嗯就是这么写的,但是这么写有个前提是字符串中的url必须在最后的位置
@Lison Liou: 上面这么写有什么问题?没看明白
小白马
我懂你意思了。有两个问题:
1.http://www.xxx.com/mall/default.aspx 最后是不是 一定是mall/default.aspx ,还是说你只是举了个例子?
2.“前提是字符串中的url必须在最后的位置”, 你怎么界定url结束了,比如
http://www.xxx.com/mall/default.aspx?id=32其他内容
这一行中没法确定id的值到底是多少
先匹配url 然后在url加上参数,最后替换掉url
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Template</title> </head> <body> <div id="wrapper"> 其中url地址可能是如下三种情况: http://www.xxx.com/打算<a>dsd</a>的撒http://www.xxx.com/mall/default.aspx打算 http://www.xxx.com/mall/default.aspx?id=2打算的 现在想用js配合正则,将已有参数加入到字符串中,参数是re=100, 所以匹配之后的字符串中url地址部分可能是如下三种情况: </div> </body> <script type="text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> //http://q.cnblogs.com/q/47279/ var cl = console.log; var content = $('#wrapper').html(); //cl(content); //http://www.xxx.com/mall/default.aspx?id=2 var reg = /http:\/\/www.xxx.com\/[\w\/\.?=]*/gi; //var match = content.match(reg); //cl(match); var newC = content.replace(reg,function(){ //console.log(arguments[0]) var matchedStr = arguments[0]; if(matchedStr.indexOf("?") == -1){ return matchedStr + "?re=100"; }else{ return matchedStr + "&re=100"; } }); cl(newC); //http://www.cnblogs.com/mxw09/archive/2010/08/12/1797905.html 供参考 //http://www.aslibra.com/blog/post/js_replaceAll.php </script> </html>
应该能解决了。