示例1:
Str = "123 4556 66666\n\n\n"; var Str1 = new RegExp('\n', 'g'); Str = Str1.replace(reg1, ''); console.log('替换换行符:'+ Str); Str = Str.replace(/\s+/g, ''); console.log("去掉空格: " + Str);
示例2:
wx.request({ url: that.data.testwebsite+"/shichang/detail.asp", data: {id:getid}, success: res => { let result = res.data[0] let contents = result.Content; // console.log(typeof contents) let newcontents = contents.replace(/\<img/gi, '<img style="width:100%;height:auto"') // console.log(newcontents); if (res.statusCode === 200) { that.setData({ jobcontent: newcontents }); } }, });
示例3:
定义/utils/wxs.wxs文件: var replacestr=function(str){ var newdate = str.replace(getRegExp('src="/UploadFile','g'),'src="https://www.mydesignplus.cn/UploadFile'); return newdate; } module.exports = { replacestr: replacestr, };
示例4:小程序点击 rich-text 组件之后预览富文本中的图片
在小程序开发时,常常会碰见一种需求,就是当用户点击 rich-text 中渲染的富文本时,需要预览图片,这里提供一个思路,就是通过正则匹配 HTML 中的图片链接,然后存到一个数组中,再将数组放入 wx.previewImage 中进行显示。
// 点击卡片之后会预览图片 onTapImg(e: WechatMiniprogram.BaseEvent) { // 将图片里的 src 提取出来,变成一个数组。 const imgTags = e.currentTarget.dataset.key.match(/<img.*?>/g); const urls: string[] = []; if (imgTags) { imgTags.forEach((tag: string) => { const url = tag.match(/src="(.*?)"/); if (url) { urls.push(url[1]); } }); } wx.previewImage({ urls: urls, }); },
示例5:定义替换函数
方式一:在style中追加 max-width:100%;height:auto; ,此方法优点灵活,对于content中所有图片都起作用
// 文章html正则追加max-width contentConv(content) { return content.replace(/<(img).*?(\/>|<\/img>)/g, function(mats) { if (mats.indexOf('style') < 0) { return mats.replace(/<\s*img/, '<img style="max-width:100%;height:auto;"'); }else{ return mats.replace(/style=("|')/, 'style=$1max-width:100%;height:auto;') } }); }, 方式二:此方法会破坏图片设置的样式,再设置style="max-width:100%;height:auto;" contentConv(content) { return content.replace(/<img[^>]*>/gi, function (match, capture) { return match.replace(/style\s*?=\s*?([‘"])[\s\S]*?\1/ig, 'style="max-width:100%;height:auto;"') // 替换style }); }
示例6:
1. 先写了个公共函数处理昵称数组
// @昵称中的特殊字符-转义处理 export const jsRreplaceStr = (friendList=[])=>{ if(!friendList) return; for(var i=0; i<friendList.length; i++){ var nickname = friendList[i].nickname; var pattern = new RegExp('[\\[\\]\\^\\$\\|\\(\\)\\+\\*\\?\\.]','g'); if(nickname.match(pattern)){ nickname = nickname.replace(pattern,function(match,param,offset,string){ var html = "\\" + match; return html; }) } friendList[i].nickname = nickname; } return friendList }
2. 在页面中再次比对后变蓝
<rich-text :nodes="uFunc.replaceStrNew(item.comment_content, item.friend_list)"></rich-text> <!--引入wxs--> <script module="uFunc" src="@/utils/wxs/common.wxs"></script>
/* * common.wxs * 评论中 @昵称 蓝色高亮显示 * @param {String} str 需要过滤替换的字符串 * @param {String} name 评论人昵称 * @param {Array} friendList @昵称列表 */ function replaceStrNew(str, friendList=[], name=''){ var strnew = str ; var strname = !name ? '':'<span class="bold">' + name + ': </span>'; for(var i=0; i<friendList.length; i++){ var nickname = friendList[i].nickname; var regStr = '@' + nickname + '\s'; var reg = getRegExp(regStr, 'g'); if(strnew.match(reg)){ console.log('ss', strnew.match(reg)) strnew = strnew.replace(reg, function(match,param,offset,string){ var html = "<span style='color:#41AEF5'>" + match +"</span>"; return html; }) } } return strname + strnew; }
3.匹配https/http/www开头网址
var reg = getRegExp('(http|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#\u4e00-\u9fa5]*[\w\-\@?^=%&/~\+#])', 'g');