>  기사  >  백엔드 개발  >  求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)

求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)

WBOY
WBOY원래의
2016-06-23 13:44:391427검색

求一正则表达式,替换某一规则的表情符号为表情图标(求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)表情)

[高兴] 替换为 求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)  (用中文命名图片规不规范?)

其实最好还是用JS来比较好的。


回复讨论(解决方案)

$str='[高兴]表情图片';
echo preg_replace('/\[(.*)\]/',"求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)",$str);

这年头,什么都正则...
用中文名做文件名的确不是明智的做法.

function replaceStr($str){
    $str=substr($str,strpos($str,'[')+1,strlen($str)-2);
    return "求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)";
}

请问,如果这样对整页进行替换,效率怎么样?

$str='[高兴]表情图片';
echo preg_replace('/\[(.*)\]/',"求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)",$str);

应该还可以接受。

我在网上找到一个JQ插件,在客户端进行替换的,对于[happy]这类的英文表情符号可以替换,但是一旦换到[高兴]中文表情符号就不行,嗯嗯,我也感觉用中文做文件名不好。

// jQuery Plugins: On/Off Emtions var __emotion__cache = false;jQuery.fn.emotions = function() {    var aEmotion = new Array();        aEmotion[21] = new Array('[happy]','\\[happy\\]');        __emotion__cache = true;    this.each(function() {        str = $(this).html();        for(iEM in aEmotion){            reg =  new RegExp(aEmotion[iEM][1],"ig");            str = str.replace(reg,'<span class="plugin_emotion" title="'+encodeURIComponent(aEmotion[iEM][0])+'"><img   src="emotions/'+iEM+'.gif" / alt="求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)" ></span>');        }        $(this).html(str);    });};jQuery.fn.unemotions = function(){    __emotion__cache = false;    $('.plugin_emotion').each(function(){        $(this).html(decodeURIComponent(this.title));                                       });}

这年头,什么都正则...
用中文名做文件名的确不是明智的做法.

function replaceStr($str){
  $str=substr($str,strpos($str,'[')+1,strlen($str)-2);
  return "求一正则表达式,替换某一规则的表情符号为表情图标(<img>表情)";
}

中文文件名  非常不好  各种不兼容 各种蛋疼。。。

注意看看有木有错误提示

alert(str );
看看是否替换了。


估计是图片名称是中文名称的原因。改用英文吧

那个JQ插件是用0.png、1.png、2.png来替换[face]的
但是把face换成中文就不行了,真奇怪。。。

注意看看有木有错误提示

alert(str );
看看是否替换了。


估计是图片名称是中文名称的原因。改用英文吧

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.