求一个正则表达式,把“pageNo:1keyWord:智联招聘searchEngine:搜搜”中红色部分显示出来,pageNo为数字,keyWord,searchEngine为任意字符串,/pageNo:([0-9]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\w|[\u4E00-\u9FA5])*)$/这个匹配出来的好奇怪,JS中有没有像java的group中那样的很方便。JavaScript正则
调试欢乐多
var m = /pageNo:([0-9]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\w|[\u4E00-\u9FA5])*)$/.exec(s);
if (m) {
alert(m[1])
alert(m[2])
alert(m[4])
}
else alert('没有匹配!');
var source="pageNo:1keyWord:一呼百应searchEngine:搜搜百度";
var pattern=/pageNo:([0-9]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\w|[\u4E00-\u9FA5])*)$/;var result=source.match(pattern);
alert(result[1]);
alert(result[2]);
alert(result[4]);
</script>
我也是这样的,我想为什么只有1,2,4那怎么会匹配到0,3,5那些呢?
0 匹配的是整个字符串
3 匹配第二段大括号中的(\w|[\u4E00-\u9FA5])就是你第二段文字的最后一个字
5 跟3同理<script type="text/javascript">
var str="pageNo:1keyWord:智联招聘searchEngine:搜搜";
var source="pageNo:1keyWord:一呼百应1searchEngine:搜搜百度";
var reg=source.match(/^pageNo:([\d]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\.|[\u4E00-\u9FA5])*)$/);
alert(reg[1]);
alert(reg[2]);
alert(reg[4]);
</script>