js字符串中某个字符的替换怎么做,不是一般的替换哟

时间:2022-06-25 08:54:52
如字符串是这样的var str = '/::Q/:heart哈哈哈'; /::Q/这个我想替换成笑脸,/:heart替换成爱心,我有一个js数组中arr[100] = '/:heart',arr[101] = '/::Q/',我知道100或者101的话,就可以把字符串替换成100.gif,101.gif,问题是我怎么把str替换成‘<img src="100.gif" /> <img src="101.gif" />哈哈哈’ 呢?求大神

9 个解决方案

#1



var str = '/::Q/:heart哈哈哈';
var sqa = {
"100": /\/:heart/ig,
"101": /\/::Q/ig
}
for (var i in sqa)
str = str.replace(sqa[i],'<img src="'+i+'.gif" />');
alert(str);

#2


你要定义成数组,你可以这样循环下
alert(repText(str))

function repText(s){
for(var i = 0;i<arr.length;i++){
var re = new RegExp(arr[i],"gi");
s = s.replace(re, "<img src='"i + ".gif'>")
}
return s;
}

#3


//你的表情肯定符合一定的规则,比如,所有的表情都是/:开始 然后怎么结束,规则明白了,就很容易替换,下面是演示
Array.prototype.indexOf=function(value)
{
for(var i=0;i<this.length;i++)
{
if(this[i]===value)
return i;
}
return -1;
}
var str = '/::Q/:heart哈哈哈';
var arr=[];
arr[100] = '/:heart';
arr[101] = '/::Q';
str=str.replace(/\/[:a-z]+/ig,function(v){
var index=arr.indexOf(v);
return '<img src="'+index+'.gif" />';
});
alert(str);

#4


引用 楼主 leos_1215171416 的回复:
如字符串是这样的var str = '/::Q/:heart哈哈哈'; /::Q/这个我想替换成笑脸,/:heart替换成爱心,我有一个js数组中arr[100] = '/:heart',arr[101] = '/::Q/',我知道100或者101的话,就可以把字符串替换成100.gif,101.gif,问题是我怎么把str替换成‘<img src="100.gif" /> <img src="101.gif" />哈哈哈’ 呢?求大神


这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

#5


引用 2 楼 net_lover 的回复:
你要定义成数组,你可以这样循环下
alert(repText(str))

function repText(s){
for(var i = 0;i<arr.length;i++){
var re = new RegExp(arr[i],"gi");
s = s.replace(re, "<img src='"i + ".gif'>")
}
return s;
}



这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

#6


引用 1 楼 jslang 的回复:

var str = '/::Q/:heart哈哈哈';
var sqa = {
"100": /\/:heart/ig,
"101": /\/::Q/ig
}
for (var i in sqa)
str = str.replace(sqa[i],'<img src="'+i+'.gif" />');
alert(str);


这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

#7


没有把图片显示出来 +
是你的图片路径错误吧。你的图片和这个程序在相同的文件夹下吗?如果不在,要加路径啊
<img src="images/118.gif" />之类的

#8


引用 6 楼 leos_1215171416 的回复:
Quote: 引用 1 楼 jslang 的回复:


var str = '/::Q/:heart哈哈哈';
var sqa = {
"100": /\/:heart/ig,
"101": /\/::Q/ig
}
for (var i in sqa)
str = str.replace(sqa[i],'<img src="'+i+'.gif" />');
alert(str);


这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

不是你说的这个意思,我的意思是说显示在页面上的就是这样一段文本<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把img标签转换成对应的图片,图片地址是对的

#9


angular显示的内容支持html标签吗?

#1



var str = '/::Q/:heart哈哈哈';
var sqa = {
"100": /\/:heart/ig,
"101": /\/::Q/ig
}
for (var i in sqa)
str = str.replace(sqa[i],'<img src="'+i+'.gif" />');
alert(str);

#2


你要定义成数组,你可以这样循环下
alert(repText(str))

function repText(s){
for(var i = 0;i<arr.length;i++){
var re = new RegExp(arr[i],"gi");
s = s.replace(re, "<img src='"i + ".gif'>")
}
return s;
}

#3


//你的表情肯定符合一定的规则,比如,所有的表情都是/:开始 然后怎么结束,规则明白了,就很容易替换,下面是演示
Array.prototype.indexOf=function(value)
{
for(var i=0;i<this.length;i++)
{
if(this[i]===value)
return i;
}
return -1;
}
var str = '/::Q/:heart哈哈哈';
var arr=[];
arr[100] = '/:heart';
arr[101] = '/::Q';
str=str.replace(/\/[:a-z]+/ig,function(v){
var index=arr.indexOf(v);
return '<img src="'+index+'.gif" />';
});
alert(str);

#4


引用 楼主 leos_1215171416 的回复:
如字符串是这样的var str = '/::Q/:heart哈哈哈'; /::Q/这个我想替换成笑脸,/:heart替换成爱心,我有一个js数组中arr[100] = '/:heart',arr[101] = '/::Q/',我知道100或者101的话,就可以把字符串替换成100.gif,101.gif,问题是我怎么把str替换成‘<img src="100.gif" /> <img src="101.gif" />哈哈哈’ 呢?求大神


这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

#5


引用 2 楼 net_lover 的回复:
你要定义成数组,你可以这样循环下
alert(repText(str))

function repText(s){
for(var i = 0;i<arr.length;i++){
var re = new RegExp(arr[i],"gi");
s = s.replace(re, "<img src='"i + ".gif'>")
}
return s;
}



这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

#6


引用 1 楼 jslang 的回复:

var str = '/::Q/:heart哈哈哈';
var sqa = {
"100": /\/:heart/ig,
"101": /\/::Q/ig
}
for (var i in sqa)
str = str.replace(sqa[i],'<img src="'+i+'.gif" />');
alert(str);


这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

#7


没有把图片显示出来 +
是你的图片路径错误吧。你的图片和这个程序在相同的文件夹下吗?如果不在,要加路径啊
<img src="images/118.gif" />之类的

#8


引用 6 楼 leos_1215171416 的回复:
Quote: 引用 1 楼 jslang 的回复:


var str = '/::Q/:heart哈哈哈';
var sqa = {
"100": /\/:heart/ig,
"101": /\/::Q/ig
}
for (var i in sqa)
str = str.replace(sqa[i],'<img src="'+i+'.gif" />');
alert(str);


这样可以,我把内容全部替换了, <span ng-if="message.msg_type == 1">{{message.content}}</span>然后是用angular显示的,但是显示出来,页面上是这样的<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把图片显示出来

不是你说的这个意思,我的意思是说显示在页面上的就是这样一段文本<img src="118.gif" /><img src="166.gif" />26jsdfdsf,没有把img标签转换成对应的图片,图片地址是对的

#9


angular显示的内容支持html标签吗?