例如知乎编辑器内,如果粘贴了一段网址,会自动转换为链接。
stack 上找到的代码不知道该如何用,大家可以看看。
function replaceURLWithHTMLLinks(text) {
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(exp,"<a href='$1'>$1</a>");
}
是监视 keyup 来替换的吗?希望得到大家的解答!谢谢!
*** // Update:2013-12-09 :***
编辑器为 <p contenteditable="true"></p>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
不推荐用
keyup
事件,因为它对非键盘操作的动作没反应,比如鼠标粘贴进来一个网址。这时候需要用onPropertyChange
事件,能够对textarea
内的属性值的变化产生动作。另外,正则部分推荐最后加一个空格判定,也就是
URL+空格
才解析为链接形式,如果是之前的匹配的话会造成死循环。http://jsfiddle.net/5kmqe/1/
对一段文本,可重复运行。