1.我们替换,一般用下面方法:‘qwew’.replace(/w/g, '@')这种方法,很方便
2.问题是万一我们要替换的内容中含有特殊字符,如‘)’,这种情况下,我们就必须将')'进行转义,即‘qw)ew)’.replace(/w\\)/g, '@')
3.还有些具体的情况下,如我们要替换的内容是可变的且含有特殊字符,那么我们用2的方法就显得很麻烦了或者根本解决不了,具体情况如下:
把微信的特殊表情字符转换为表情图片:
var data = 'w/::)e/::)r';//用户随机输入的内容
var face= [//用户可选的表情符号
['微笑', '/::)'], ['撇嘴', '/::~'], ['色', '/::B'], ['发呆', '/::|'], ['得意', '/:8-)'], ['流泪', '/::<'], ['害羞', '/::$']
];
我们可以通过substr方法来代替replace方法,且不需要考虑特殊字符转义得情况,
解决过程如下:
for(var j=0; j<face.length; j++) {//考虑到含有特殊字符,不用正则 while(data.indexOf(face[j][1])+1) { var index = data.indexOf(face[j][1]), len = face[j][1].length, str1 = data.substr(0, index), str2 = data.substr(index+len); data = str1 +'<img src="'+ src+j +'.gif">'+ str2; } }
console.log(data);//替换后的结果
转载请注明原文地址: https://ju.6miu.com/read-1303551.html