有一个字符串http://www.xinhua.cn和我的http://www.baidu.com及http://172.18.10.114/netsail/bsoa-new.nsf/homepage?openform;s.replace(/((http:\/\/)?(\w+\.)+\w+(\/[\w- ./?%&=]*)?)/img, "<A target=_blank href='$1'>$1</A>")
这个正则可以把http的加上<a>链接,但是我要想里的那个http不处理,要怎么弄啊?请高手帮忙啊。
这个正则可以把http的加上<a>链接,但是我要想里的那个http不处理,要怎么弄啊?请高手帮忙啊。
解决方案 »
- jQuery获取当前点击对象
- 急急急啊,为什么加上DOCTYPE 就失效了呢。
- [疑难问题]jstree拖动树+types完美整合问题
- 请教访问路径的问题
- 关于js 土封装对象.在IE与火狐中调用的问题
- 链接打开一个空白页面后,在空白页中加载页面的问题
- 请问一个框的按钮怎样执行另一个框的 function?
- JSP的一种控件叫什么?
- 好久没有上来问问题了,现在问一个关于vml的问题,请大虾指教
- 怎么写一个表格,当<td onmouseover="">时,改变这个row的背景颜色?
- Jquery怎么遍历id=abc的select元素?
- javascript是不是一种语法或结构上,不是特别严谨的语言呢(相比java,c#来说)
用以下代码可以得到"http://www.xinhua.cn"var s = "http://www.xinhua.cn和我的http://www.baidu.com及http://172.18.10.114/netsail/bsoa-new.nsf/homepage?openform";
var reg = /((http:\/\/)?(\w+\.)+(\w)+(\/[\w- .\?\%\&\=]*)?)(?=(\[))/img
alert(s.match(reg));但是用反向预查却只去掉了最后一个字母"n"?var s = "http://www.xinhua.cn和我的http://www.baidu.com及http://172.18.10.114/netsail/bsoa-new.nsf/homepage?openform";
var reg = /((http:\/\/)?(\w+\.)+(\w)+(\/[\w- .\?\%\&\=]*)?)(?!(\[))/img
alert(s.match(reg));不解,等高手解惑
伴水哥呢?shan1119呢?怎么都不见……
但是用反向预查却只去掉了最后一个字母"n"?
var reg = /((http:\/\/)?(\w+\.)+(\w)+(\/[\w- .\?\%\&\=]*)?)(?!(\[))/img
这正好说明了(?!(\[))起作用了。因为前移一个字母,就能满足后面不跟字符“[”,所以它会匹配到www.xinhua.c
var reg = /((http:\/\/)?(\w+\.)+(\w)+((\/[\w-\.\?\%\&\=]*)+|(?=[\u00a0-\uffff])))/mg;
var res = s.match(reg);找到后面跟/或者汉字的字符,勉强可以满足LZ的要求。
但我想这不是很好的解决办法。还是举张先删除方式。
另外,如果上面正则表达式如加匹配参数i,即变成/img,会导致错误。未知何故。
var s = '有一个字符串http://www.xinhua.cn和我的http://www.baidu.com及http://172.18.10.114/netsail/bsoa-new.nsf/homepage?openform;';
alert(s.replace(
/((\[url])?(http:\/\/)?(\w+\.)+\w+(\/[\w- ./?%&=]*)?)/img,
function($0, $1, $2) {
return ($1.indexOf('[url]') >= 0)? $1 : '<a href="'+ $1 +'">'+ $1 +'</a>'
}));