javascript自动链接url,但避免递归
javascript autolink urls but avoid recursion
我正在尝试用javascript创建一个自动链接功能,该功能在用户键入(ContentEditablediv)时自动将url转换为链接。
我使用这个正则表达式:
var text = 'Some text containing URLs';
var exp = /('b(http):'/'/[-A-Z0-9+&@#'/%?=~_|!:,.;]*[-A-Z0-9+&@#'/%=~_|])/ig;
var newtext = text.replace(exp,"<a href='$1'>$1</a>");
上面的代码运行良好,但由于每次用户键入时都会调用代码,因此会发生递归:
<a href='<a href='<a href=' etc.
如何避免这种情况发生,同时让脚本在用户键入时更新文本?
所以问题是(谢谢@putvande):我该如何检查URL是否已经包含:
<a href='...
(我对regex不是很在行)
您只能匹配那些没有前缀为>
或'
的URL模式。虽然这可能不是100%万无一失的,但它应该足以让你开始。
function urlify(text) {
var exp = /^'>('b(http):'/'/[-A-Z0-9+&@#'/%?=~_|!:,.;]*[-A-Z0-9+&@#'/%=~_|])/ig;
return text.replace(exp,"<a href='$1'>$1</a>");
}
称之为:
urlify('Some text http://example.com containing URLs');
返回"Some text <a href='http://example.com'>http://example.com</a> containing URLs"
urlify("Some text <a href='http://example.com'>http://example.com</a> containing URLs");
返回"Some text <a href='http://example.com'>http://example.com</a> containing URLs"
相关文章:
- 数组在递归方法中设置为null
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 递归使用 eval() 是检查程序执行的好方法吗?
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- 递归深度比较
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- 递归函数中断
- 如何递归地获取嵌套对象中所有子对象的列表
- JavaScript 素数搜索无限递归
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- 递归|两个函数名
- 有没有一种方法可以在Javascript中进行可变递归currying
- 如何对不同的表递归使用以下代码
- 将jQuery对象传递到setTimeout递归函数中
- 有更好的方法吗?(递归解析HTML unicode实体)
- 为什么递归生成器函数没有't在ES2015工作
- 使用递归实现加性持久性
- 递归显示n元树
- javascript自动链接url,但避免递归
- 递归事务中的默认成功 URL 是什么