modaiairen 2014-07-09
正则匹配规定范围的url
需求要求,textarea里面的文本如果有http开头以#code=股票代码结束的url要给其加上a链接发送给后台。
写了个例子如:
<textarea id="text">这个是测试的地址:http://news.10jqka.com.cn/field/20140701/566341184.shtml#code=300032#code=300032 测试测试测试文本</textarea> <script type="text/javascript"> var str = document.getElementById('text').value; alert(str); var reg = str.match(/http:(.)*#code=[\w]+/ig); alert(reg); var strings = str.replace(reg[0],'<a href="'+reg[0] +'">'+reg[0]+'</a>'); alert(strings) </script>
alert(str);出来的是textarea的里面的内容
alert(reg);出来的匹配到的:http://news.10jqka.com.cn/field/20140701/566341184.shtml#code=300032#code=300032
alert(strings);出来的是<a href="http://news.10jqka.com.cn/field/20140701/566341184.shtml#code=300032#code=300032">http://news.10jqka.com.cn/field/20140701/566341184.shtml#code=300032#code=300032</a>
最后是把strings传给后台
分享一个网站正则匹配 http://www.rubular.com/
<textarea id="text" style="width:300px; height:400px"></textarea> <input type="button" id="inn" value="jjj" /> <script type="text/javascript"> $("#inn").click(function(){ var str = document.getElementById('text').value; var aaa = str.replace(/<br\s*\/?\s*>/ig,"\n").replace(/<\/?[^>]*>/g, ''); var bbb = str.replace(/<br\s*\/?\s*>/ig,"\n").replace(/<\/?[^>]*>/g, '').replace(/( )|\u00a0/g,' '); alert(aaa); alert(bbb); }); </script>
replace(/<br\s*\/?\s*>/ig,"\n");是把<br />换成\n输出
.replace(/<\/?[^>]*>/g, '');过滤所有的html标签
.replace(/( )|\u00a0/g,' ');把 换成空输出
正则表达式学习