我现在有这个,(我在这里找到了代码).
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
someText.replace(exp, "<a href='$1'>$1</a>");
Run Code Online (Sandbox Code Playgroud)
它会用someText 替换someText中的任何http:// URL<a href>
但我也要求它匹配www.没有http.我在RegEx Lib上发现了这个RegEx.
((http\://|https\://|ftp\://)|(www.))+(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\?\.'~]*)?
Run Code Online (Sandbox Code Playgroud)
我在RegEx检查站点上进行了测试,http: //www.nvcc.edu/home/drodgers/ceu/resources/test_regexp.asp
它匹配我想要的字符串.但当我把它放入我的exp var时,JavaScript正在爆炸并导致错误.
我甚至尝试将其作为新的RegExp进行新的修改.
var exp = new RegExp(((http\://|https\://|ftp\://)|(www.))+(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\?\.'~]*)?);
Run Code Online (Sandbox Code Playgroud)
但同样的事情发生了.
我有什么想法吗?
谢谢,Kohan
我相信RegExp构造函数接受一个字符串作为参数,请参见此处:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp
所以只需在正则表达式周围添加引号,它应该可以正常工作.
var exp = new RegExp("((http\\://|https\\://|ftp\\://)|(www.))+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\\?\\.'~]*)?");
someText.replace(exp, "<a href='$1'>$1</a>");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |