转换url为html <a>标签和图像url到<img>用javascript正则表达式标记
Convert url to html <a> tag and image url to <img> tag with javascript regular expressions
我正试图编写一个函数,从文本区域的文本中创建常规链接的标签和图像链接的标签。
第一次对两个都有效,但如果我在那里粘贴一个"a href"标签,它会双链接它。由于imageRegex检查,它不处理图像。有什么办法让它工作吗?
请记住,textarea可以有两种类型的多个url。
$("#message").blur(function() {
var imageRegex = /'.(png|jpg|jpeg|gif)$/;
var s = $(this).val().replace(/(?:^|[^"'])('b(?:https?|ftp):'/'/[a-z0-9-+&@#'/%?=~_|!:,.;]*[a-z0-9-+&@#'/%=~_|])/gim, function(str) {
if (str.match(imageRegex)) {
return('<img src="' + str + '" />');
} else {
return('<a href="' + str + '">' + str + '</a>');
}
});
$(this).val(s);
});
我不擅长jQuery,但我为您的问题做了一个简单的解决方案。看看这把小提琴!http://jsfiddle.net/dv0s5onj/
var yourString=document.getElementById('message').innerHTML;
var count=0;
var urls=yourString.match(/(?:^|[^"'])('b(?:https?|ftp):'/'/[a-z0-9-+&@#'/%?=~_|!:,.;]*[a-z0-9-+&@#'/%=~_|])/gim);
// Make an array of urls
urls.forEach(function(v,i,a){
var n = yourString.indexOf(v,count); //get location of string
if(v.match(/'.(png|jpg|jpeg|gif)$/)===null){// Check if image
// If link replace yourString with new anchor tag
yourString = strSplice(yourString,n,v.length,'<a href="'+v+'">'+v+'</a>');
count += (v.length*2)+16;// Increase count incase there are multiple of the same url.
}else{
// If link replace yourString with img tag
yourString = strSplice(yourString,n,v.length,'<img src="'+v+'" height="120px;" width="120px;"/>');
count += v.length+14;// Increase count incase there are multiple of the same url.
}
});
// A function to splice strings that I found on another StackOverflow Question.
function strSplice(str, index, count, add) {
return str.slice(0, index) + (add || "") + str.slice(index + count);
}
//Replace the value of your element with your string
document.getElementById('message').innerHTML=yourString;
相关文章:
- Decode URL Javascript/JQuery
- 阅读重写URL-javascript
- 出现在Twitter帖子中的页面URL - Javascript
- 从图像URL javascript html保存图像文件
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 如何将javascript添加到url javascript中
- 获取请求的页面url javascript
- 通过网络浏览器从 URL javascript 读取文件
- window.location.url Javascript
- 以字符串形式返回 HTML 内容,给定 URL.Javascript 函数
- 在页面加载时将变量附加到 URL |JavaScript
- 来自 url javascript 的 Prase 查询字符串
- 从url javascript中提取部件
- 在给定URL Javascript/Jquery函数的情况下,以字符串形式返回HTML内容
- 正则表达式匹配特定的URL JavaScript
- 干净的方式给MVC url javascript库
- 如果数据包含URL, Javascript将无法解析JSON
- XMLHTTP从变量而不是url - javascript
- 在URL javascript中传递时间值出错
- 包括外部URL javascript文件