替换为"www.baidu.com/index.html?name='123'&title='456'"
尝试着写了一下不起作用,请大家帮忙指点一下,对正则太生疏.
var strurl="www.baidu.com/index.html?name=123&title=456";
strurl.replace(/=(\.*)(&|$)/gi,"'$1'");
alert(strurl)
17 个解决方案
#1
<SCRIPT LANGUAGE="JavaScript">
var xxx = "www.baidu.com/index.html?name=123&title=456";
var re = /(name\=)([\w]*)(\&)(title\=)([\w]*)/g
xxx = xxx.replace(re,function($0,$1,$2,$3,$4,$5){return $1+'\''+$2+'\''+$3+$4+'\''+$5+'\''});
alert(xxx);
</script>
<body>
</body>
var xxx = "www.baidu.com/index.html?name=123&title=456";
var re = /(name\=)([\w]*)(\&)(title\=)([\w]*)/g
xxx = xxx.replace(re,function($0,$1,$2,$3,$4,$5){return $1+'\''+$2+'\''+$3+$4+'\''+$5+'\''});
alert(xxx);
</script>
<body>
</body>
#2
<script>
var strurl="www.baidu.com/index.html?name=1w23&title=4_536";
strurl=strurl.replace(/=([\w]*)($|&)/gi,"='$1'$2");
alert(strurl)
</script>
var strurl="www.baidu.com/index.html?name=1w23&title=4_536";
strurl=strurl.replace(/=([\w]*)($|&)/gi,"='$1'$2");
alert(strurl)
</script>
#3
<script language="javascript">
//alert('')
var a="www.baidu.com/index.html?name=123&title=456"
alert(a.replace(/\=(.*?)(\&|$)/g,"='$1'$2"))
//alert(/^\(\d{3}\)\d{3}\-\d{4}$/.test('(121)123-123'))
</script>
//alert('')
var a="www.baidu.com/index.html?name=123&title=456"
alert(a.replace(/\=(.*?)(\&|$)/g,"='$1'$2"))
//alert(/^\(\d{3}\)\d{3}\-\d{4}$/.test('(121)123-123'))
</script>
#4
谢谢三位都可以用,我有个疑惑想请教各位,为什么/\=(.*?)(&|$)/g 会得到name='123'&title='456'而/\=(.*)(&|$)/g 或/\=(.*)?(&|$)/g会得到name='123&title=456'呢
?(/=([\w]*)($|&)/gi没有?却可以得到正确结果,究竟正则的匹配是一个怎样的过程呢?
?(/=([\w]*)($|&)/gi没有?却可以得到正确结果,究竟正则的匹配是一个怎样的过程呢?
#5
=([\w]*)($|&) 匹配的是=123&(前面和中间的参数) =456(最后一个参数)之类的
替换后 都替换成='123'& or ='456'
替换后 都替换成='123'& or ='456'
#6
1.4.1 简单量词
?:出现零次或一次;
*:出现零次或多次;
+:出现一次或多次;
{n}:一定出现n次;
{n,m}:至少出现n次但不超过m次;
{n,}:至少出现n次;
1.4.2 贪婪的、惰性的和支配性的量词
贪婪量词先看整个字符串是不是匹配,如果没有发现匹配,先去掉最后字符串中的最后一个字符,并再次尝试,如果还没有发现匹配,那么再次去掉最后一个字符,这个过程会一直重复下去直到发现匹配或不剩任何字符串,上面的简单量词都是贪婪量词。
惰性量词先看字符串中的第一个字母是不是一个匹配,如果不匹配则继续读入下一个字符进行匹配,如果没有则一直匹配下去,与贪婪量词刚好相反,惰性量词用上面的简单量词跟一个?表示。
(.*?)是惰性量词 (加个?)
?:出现零次或一次;
*:出现零次或多次;
+:出现一次或多次;
{n}:一定出现n次;
{n,m}:至少出现n次但不超过m次;
{n,}:至少出现n次;
1.4.2 贪婪的、惰性的和支配性的量词
贪婪量词先看整个字符串是不是匹配,如果没有发现匹配,先去掉最后字符串中的最后一个字符,并再次尝试,如果还没有发现匹配,那么再次去掉最后一个字符,这个过程会一直重复下去直到发现匹配或不剩任何字符串,上面的简单量词都是贪婪量词。
惰性量词先看字符串中的第一个字母是不是一个匹配,如果不匹配则继续读入下一个字符进行匹配,如果没有则一直匹配下去,与贪婪量词刚好相反,惰性量词用上面的简单量词跟一个?表示。
(.*?)是惰性量词 (加个?)
#7
?(/=([\w]*)($|&) 你匹配的是?=123& ?=123一类的数据 没这样的数据
#8
<script type="text/javascript">
var t = "www.baidu.com\/index.html?name=123&title=456";
alert(t.replace(/([^&=]+)(?=&|$)/g, "'$1'"));
var t = "www.baidu.com\/index.html?name=&title=456";
alert(t.replace(/=([^&]*)(?=&|$)/g, "='$1'"));
</script>
var t = "www.baidu.com\/index.html?name=123&title=456";
alert(t.replace(/([^&=]+)(?=&|$)/g, "'$1'"));
var t = "www.baidu.com\/index.html?name=&title=456";
alert(t.replace(/=([^&]*)(?=&|$)/g, "='$1'"));
</script>
#9
alert(t.replace(/=([^&]*)/g, "='$1'"));
:D
:D
#10
t.replace(/=([^&]*?)/g, "='$1'") 要个?吧
#11
<script type="text/javascript">
/*<![CDATA[*/
var s = "www.baidu.com/index.html?name=123&title=456";
alert(s.replace(/(\d+)/g, "'$1'"));
/*]]*/
</script>
/*<![CDATA[*/
var s = "www.baidu.com/index.html?name=123&title=456";
alert(s.replace(/(\d+)/g, "'$1'"));
/*]]*/
</script>
#12
这么简单的正则, 大家是不是想得太复杂了...
#13
to mingxuan3000(铭轩)
不要的。。
既然是非&就肯定不会有贪婪的形式。。
URL里所有的特殊字符都会转换成URLCODE
- -
\d....
不要的。。
既然是非&就肯定不会有贪婪的形式。。
URL里所有的特殊字符都会转换成URLCODE
- -
\d....
#14
刚想到
#15
数字太特殊了,参数还有是字母的
#16
竟然有这么多高手反复给我回帖子,真是太意外了.由衷的感谢
#17
少废话...
问题解决了就快结贴...
问题解决了就快结贴...
#1
<SCRIPT LANGUAGE="JavaScript">
var xxx = "www.baidu.com/index.html?name=123&title=456";
var re = /(name\=)([\w]*)(\&)(title\=)([\w]*)/g
xxx = xxx.replace(re,function($0,$1,$2,$3,$4,$5){return $1+'\''+$2+'\''+$3+$4+'\''+$5+'\''});
alert(xxx);
</script>
<body>
</body>
var xxx = "www.baidu.com/index.html?name=123&title=456";
var re = /(name\=)([\w]*)(\&)(title\=)([\w]*)/g
xxx = xxx.replace(re,function($0,$1,$2,$3,$4,$5){return $1+'\''+$2+'\''+$3+$4+'\''+$5+'\''});
alert(xxx);
</script>
<body>
</body>
#2
<script>
var strurl="www.baidu.com/index.html?name=1w23&title=4_536";
strurl=strurl.replace(/=([\w]*)($|&)/gi,"='$1'$2");
alert(strurl)
</script>
var strurl="www.baidu.com/index.html?name=1w23&title=4_536";
strurl=strurl.replace(/=([\w]*)($|&)/gi,"='$1'$2");
alert(strurl)
</script>
#3
<script language="javascript">
//alert('')
var a="www.baidu.com/index.html?name=123&title=456"
alert(a.replace(/\=(.*?)(\&|$)/g,"='$1'$2"))
//alert(/^\(\d{3}\)\d{3}\-\d{4}$/.test('(121)123-123'))
</script>
//alert('')
var a="www.baidu.com/index.html?name=123&title=456"
alert(a.replace(/\=(.*?)(\&|$)/g,"='$1'$2"))
//alert(/^\(\d{3}\)\d{3}\-\d{4}$/.test('(121)123-123'))
</script>
#4
谢谢三位都可以用,我有个疑惑想请教各位,为什么/\=(.*?)(&|$)/g 会得到name='123'&title='456'而/\=(.*)(&|$)/g 或/\=(.*)?(&|$)/g会得到name='123&title=456'呢
?(/=([\w]*)($|&)/gi没有?却可以得到正确结果,究竟正则的匹配是一个怎样的过程呢?
?(/=([\w]*)($|&)/gi没有?却可以得到正确结果,究竟正则的匹配是一个怎样的过程呢?
#5
=([\w]*)($|&) 匹配的是=123&(前面和中间的参数) =456(最后一个参数)之类的
替换后 都替换成='123'& or ='456'
替换后 都替换成='123'& or ='456'
#6
1.4.1 简单量词
?:出现零次或一次;
*:出现零次或多次;
+:出现一次或多次;
{n}:一定出现n次;
{n,m}:至少出现n次但不超过m次;
{n,}:至少出现n次;
1.4.2 贪婪的、惰性的和支配性的量词
贪婪量词先看整个字符串是不是匹配,如果没有发现匹配,先去掉最后字符串中的最后一个字符,并再次尝试,如果还没有发现匹配,那么再次去掉最后一个字符,这个过程会一直重复下去直到发现匹配或不剩任何字符串,上面的简单量词都是贪婪量词。
惰性量词先看字符串中的第一个字母是不是一个匹配,如果不匹配则继续读入下一个字符进行匹配,如果没有则一直匹配下去,与贪婪量词刚好相反,惰性量词用上面的简单量词跟一个?表示。
(.*?)是惰性量词 (加个?)
?:出现零次或一次;
*:出现零次或多次;
+:出现一次或多次;
{n}:一定出现n次;
{n,m}:至少出现n次但不超过m次;
{n,}:至少出现n次;
1.4.2 贪婪的、惰性的和支配性的量词
贪婪量词先看整个字符串是不是匹配,如果没有发现匹配,先去掉最后字符串中的最后一个字符,并再次尝试,如果还没有发现匹配,那么再次去掉最后一个字符,这个过程会一直重复下去直到发现匹配或不剩任何字符串,上面的简单量词都是贪婪量词。
惰性量词先看字符串中的第一个字母是不是一个匹配,如果不匹配则继续读入下一个字符进行匹配,如果没有则一直匹配下去,与贪婪量词刚好相反,惰性量词用上面的简单量词跟一个?表示。
(.*?)是惰性量词 (加个?)
#7
?(/=([\w]*)($|&) 你匹配的是?=123& ?=123一类的数据 没这样的数据
#8
<script type="text/javascript">
var t = "www.baidu.com\/index.html?name=123&title=456";
alert(t.replace(/([^&=]+)(?=&|$)/g, "'$1'"));
var t = "www.baidu.com\/index.html?name=&title=456";
alert(t.replace(/=([^&]*)(?=&|$)/g, "='$1'"));
</script>
var t = "www.baidu.com\/index.html?name=123&title=456";
alert(t.replace(/([^&=]+)(?=&|$)/g, "'$1'"));
var t = "www.baidu.com\/index.html?name=&title=456";
alert(t.replace(/=([^&]*)(?=&|$)/g, "='$1'"));
</script>
#9
alert(t.replace(/=([^&]*)/g, "='$1'"));
:D
:D
#10
t.replace(/=([^&]*?)/g, "='$1'") 要个?吧
#11
<script type="text/javascript">
/*<![CDATA[*/
var s = "www.baidu.com/index.html?name=123&title=456";
alert(s.replace(/(\d+)/g, "'$1'"));
/*]]*/
</script>
/*<![CDATA[*/
var s = "www.baidu.com/index.html?name=123&title=456";
alert(s.replace(/(\d+)/g, "'$1'"));
/*]]*/
</script>
#12
这么简单的正则, 大家是不是想得太复杂了...
#13
to mingxuan3000(铭轩)
不要的。。
既然是非&就肯定不会有贪婪的形式。。
URL里所有的特殊字符都会转换成URLCODE
- -
\d....
不要的。。
既然是非&就肯定不会有贪婪的形式。。
URL里所有的特殊字符都会转换成URLCODE
- -
\d....
#14
刚想到
#15
数字太特殊了,参数还有是字母的
#16
竟然有这么多高手反复给我回帖子,真是太意外了.由衷的感谢
#17
少废话...
问题解决了就快结贴...
问题解决了就快结贴...