我是靠谱客的博主 沉静蜡烛,最近开发中收集的这篇文章主要介绍Vue · textarea解析换行符,文本中的URL可跳转,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

    • 解析换行符
      • 方法一:在展示内容的盒子添加一个样式
      • 方法二:可以用replace替换空格和换行
      • 方法三:识别换行后 分别加上p标签
    • 文本中的URL可跳转
      • JS
      • Vue

解析换行符

如果使用文本域输入内容, 在输入内容之后,将内容传给后台后,我们再次展示时,发现之前的换行符都没有了 。

方法一:在展示内容的盒子添加一个样式

.textarea {
  white-space: pre-line;  
}

.p{
	white-space: pre-line;
}

<p style="white-space: pre-line;font-size:16px;color:#777;">{{row.ent_profile}}</p>

方法二:可以用replace替换空格和换行

<el-input v-model="temp.content" type="textarea" />
this.temp.content = this.temp.content.replace(/n/g, '<br/>')
this.temp.content = this.temp.content.replace(new RegExp(' ', 'gm'), '&nbsp;')
// 空格转为 &nbsp
// this.model.content = this.model.content.replace(/ /g,' &nbsp');

方法三:识别换行后 分别加上p标签

这里需要注意的是 在传给接口前还需要将添加p标签后的数组形式转换成字符串

this.temp.content = this.temp.content.replace(new RegExp(' ', 'gm'), '&nbsp;') // gm 全局替换
const arr = []
this.temp.content.split('n').forEach(item => {
    arr.push(`<p>${item.trim()}</p>`)
 })
this.temp.content = arr.join('')

方法四:使用属性contentEditable
属性contentEditable:用于设置或返回元素的内容是否可编辑。
给任意标签如div或p标签设置属性contentEditable = true,则p标签或div标签等为可编辑标签

<div ref="content" contenteditable="true"  @input="changeTxt" v-html="temp.content">{{ temp.content }}</div>
changeTxt() {
  this.tempContent = this.$refs.content.innerHTML
},

文本中的URL可跳转

JS

function replaceSrc(txt){
var reg = /(((https?:(?://)?)(?:[-;:&=+$,w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,w]+@)[A-Za-z0-9.-]+)((?:/[+~%/.w-_]*)???(?:[-+=&;%@.w_]*)#?(?:[w]*))?)/ig;
var result = txt.replace(reg,function(item){
return "<a href='"+item+"' target='_blank'>"+item+"</a>";
});
return result;
}
var str = '1231www.baidu.com hahaha http://hao123.com 123123';
replaceSrc(str);

结果返回:

1231 <a href="www.baidu.com" target="_blank">www.baidu.com</a> hahaha <a href="http://hao123.com" target="_blank">http://hao123.com</a> 123123

Vue

let content =
            "发送n打开nnhttp://0.0.0.0:9898/#/residentInGroupDetailPage?gridname=%E5%9F%8E%E4%B8%9C01%E7%BD%91%E6%A0%BC&gridlead=%E6%9E%97%E6%83%A0%E8%8A%B3&role=%E7%BD%91%E6%A0%BC%E8%81%94%E7%BB%9C%E5%91%98&talknum=40&name=%E5%9F%8E%E4%B8%9C01%E7%BD%91%E6%A0%BC-%E6%83%A0%E5%AD%90%E5%B1%85%E6%B0%91%E7%BE%A4&id=wrzBYGBgAAm3hcOhJ__WTLNY9A3cHh-A&gridid=107&peoplenum=10n打开nhttp://0.0.0.0:9898/#/sendNoticenhttps://www.cnblogs.com/qiuxiaojian/p/9403215.html";
this.replaceSrc(content);
replaceSrc(txt) {
      // var reg =
      //   /(((https?:(?://)?)(?:[-;:&=+$,w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,w]+@)[A-Za-z0-9.-]+)((?:/[+~%/.w-_]*)???(?:[-+=&;%@.w_]*)#?(?:[w]*))?)/gi;
      var reg =
        /(?:(?:https?|ftp|file)://|www.|ftp.)(?:([-A-Za-z0-9+&@#/%=~_|$?!:,.]*)|[-A-Za-z0-9+&@#/%=~_|$?!:,.])*(?:([-A-Za-z0-9+&@#/%=~_|$?!:,.]*)|[A-Za-z0-9+&@#/%=~_|$])/gi;
      var result = txt.replace(reg, function (item) {
        return "<a href='" + item + "' target='_blank'>" + item + "</a>";
      });
      this.data.content = result;
    },

最后

以上就是沉静蜡烛为你收集整理的Vue · textarea解析换行符,文本中的URL可跳转的全部内容,希望文章能够帮你解决Vue · textarea解析换行符,文本中的URL可跳转所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部