Php 为特定字符前后的文本字符串着色

Php 为特定字符前后的文本字符串着色,php,javascript,jquery,text,Php,Javascript,Jquery,Text,我有一些数据,由于其输出方式,只能以特定的方式进行排序 我有一个包含如下文本字符串的表 MyTextString_MyTextString MyTextString_MyTextString MyTextString_MyTextString 为了使它更具可读性,我希望将\uuu前面的文本涂成红色,将\uu后面的文本涂成蓝色。这在jquery或php中是可能的吗 我试过一些方法,比如$('.myElement').find(''u').css('color','red')但不要认为这是正确的方

我有一些数据,由于其输出方式,只能以特定的方式进行排序

我有一个包含如下文本字符串的表

MyTextString_MyTextString
MyTextString_MyTextString
MyTextString_MyTextString
为了使它更具可读性,我希望将
\uuu
前面的文本涂成红色,将
\uu
后面的文本涂成蓝色。这在jquery或php中是可能的吗

我试过一些方法,比如
$('.myElement').find(''u').css('color','red')但不要认为这是正确的方法

是否可以只执行一次,例如,如果有另一个文本字符串,它将保留第二种颜色,蓝色?i、 e.红色\蓝色\蓝色(计数=1?)

标记的示例

<td class="myTextString1">
    MyTextString_MyTextString1
    <br/>
    MyTextString_MyTextString2
    <br/>
    MyTextString_MyTextString3
</p>

MyTextString\u MyTextString1

MyTextString\u MyTextString2
MyTextString\u MyTextString3

PHP:

$stringParts=explode('uu','MyTextString'umytextstring');
$stringParts[0]=sprintf('%s',$stringParts[0]);
如果(计数($stringParts)>1)
{
$stringParts[1]=sprintf('%s',$stringParts[1]);
/*……或者别的什么*/
}
回波内爆('.',$stringParts);
PHP:

$stringParts=explode('uu','MyTextString'umytextstring');
$stringParts[0]=sprintf('%s',$stringParts[0]);
如果(计数($stringParts)>1)
{
$stringParts[1]=sprintf('%s',$stringParts[1]);
/*……或者别的什么*/
}
回波内爆('.',$stringParts);
js:

编辑:工作JSFIDLE:

编辑:基于克里斯托弗代码:

String.prototype.colorize = function () {
    var regex = new RegExp('[^_]+', 'gi'),
        color = $.extend(['blue', 'red'], arguments || []),
        index = 0;

    return this.replace(regex, function(matched) {
        return '<span style="color: ' + color[index++] + ';">' + matched + '</span>';
    });
};

$.fn.customColorize = function () {
    var args = arguments,
        delimiter = "<br>";

    return this.each(function () {
        var splitetElements = $.map(this.innerHTML.split(delimiter), function(s) { return s.colorize(); });
        this.innerHTML = splitetElements.join(delimiter);
    });
};
String.prototype.colorize=函数(){
var regex=new RegExp(“[^"]+”,“gi”),
color=$.extend(['blue','red'],arguments | |[]),
指数=0;
返回此。替换(正则表达式,函数(匹配){
返回“”+匹配+“”;
});
};
$.fn.customColorize=函数(){
var args=参数,
分隔符=“
”; 返回此。每个(函数(){ var splitetElements=$.map(this.innerHTML.split(分隔符),函数{返回s.colorize();}); this.innerHTML=splitetElements.join(分隔符); }); };
js:

编辑:工作JSFIDLE:

编辑:基于克里斯托弗代码:

String.prototype.colorize = function () {
    var regex = new RegExp('[^_]+', 'gi'),
        color = $.extend(['blue', 'red'], arguments || []),
        index = 0;

    return this.replace(regex, function(matched) {
        return '<span style="color: ' + color[index++] + ';">' + matched + '</span>';
    });
};

$.fn.customColorize = function () {
    var args = arguments,
        delimiter = "<br>";

    return this.each(function () {
        var splitetElements = $.map(this.innerHTML.split(delimiter), function(s) { return s.colorize(); });
        this.innerHTML = splitetElements.join(delimiter);
    });
};
String.prototype.colorize=函数(){
var regex=new RegExp(“[^"]+”,“gi”),
color=$.extend(['blue','red'],arguments | |[]),
指数=0;
返回此。替换(正则表达式,函数(匹配){
返回“”+匹配+“”;
});
};
$.fn.customColorize=函数(){
var args=参数,
分隔符=“
”; 返回此。每个(函数(){ var splitetElements=$.map(this.innerHTML.split(分隔符),函数{返回s.colorize();}); this.innerHTML=splitetElements.join(分隔符); }); };
在我看来,我做了一把小提琴来展示一个很好的方法。

有两个插件,一个扩展String.prototype,另一个扩展jQuery.fn。通过这种方式,您可以从字符串和元素调用“.colorize()”。我在提琴中加入了一些例子

String.prototype.colorize = function () {
    var regex = new RegExp('[^_]+', 'gi'),
        color = $.extend(['blue', 'red'], arguments || []),
        index = 0;    

    return this.replace(regex, function(matched) {
        return '<span style="color: ' + color[index++] + ';">' + matched + '</span>';
    });
}

$.fn.colorize = function () {
    var args = arguments;

    return this.each(function () {
        this.innerHTML = this.innerHTML.colorize
            .apply(this.innerHTML, args);
    });
}
String.prototype.colorize=函数(){
var regex=new RegExp(“[^"]+”,“gi”),
color=$.extend(['blue','red'],arguments | |[]),
指数=0;
返回此。替换(正则表达式,函数(匹配){
返回“”+匹配+“”;
});
}
$.fn.colorize=函数(){
var args=参数;
返回此。每个(函数(){
this.innerHTML=this.innerHTML.colorize
.apply(this.innerHTML,args);
});
}

希望这有帮助

在我看来,我做了一把小提琴来展示一个很好的方法。

有两个插件,一个扩展String.prototype,另一个扩展jQuery.fn。通过这种方式,您可以从字符串和元素调用“.colorize()”。我在提琴中加入了一些例子

String.prototype.colorize = function () {
    var regex = new RegExp('[^_]+', 'gi'),
        color = $.extend(['blue', 'red'], arguments || []),
        index = 0;    

    return this.replace(regex, function(matched) {
        return '<span style="color: ' + color[index++] + ';">' + matched + '</span>';
    });
}

$.fn.colorize = function () {
    var args = arguments;

    return this.each(function () {
        this.innerHTML = this.innerHTML.colorize
            .apply(this.innerHTML, args);
    });
}
String.prototype.colorize=函数(){
var regex=new RegExp(“[^"]+”,“gi”),
color=$.extend(['blue','red'],arguments | |[]),
指数=0;
返回此。替换(正则表达式,函数(匹配){
返回“”+匹配+“”;
});
}
$.fn.colorize=函数(){
var args=参数;
返回此。每个(函数(){
this.innerHTML=this.innerHTML.colorize
.apply(this.innerHTML,args);
});
}


希望这有帮助

如何将其分配给TD.ClassName?:)抱歉把你弄糊涂了。。。我制作了一个在这里实际工作的JSFIDLE:)它真的很好,但我需要在
(fiddle:jsFIDLE.net/gTZH2/6)之后再做。我知道,这不是我的目标,我无法控制它;((在为单个部分着色之前,我将Kristofers插件改为拆分为
。虽然我重新命名了该函数(到目前为止,该函数简单明了,但从名称上看,现在还不清楚该函数到底会做什么。我想知道他会怎么做)。我如何将其分配给TD.ClassName?:)让你困惑的是…我制作了一个JSFIDLE,它实际上在这里工作:)它真的很好,但我需要在
(fiddle:jsFiddle.net/gTZH2/6)之后再做。我知道,这不是我的目标,我无法控制它;((在对单个部分着色之前,我将Kristofers插件改为拆分为
。不过,我重新命名了该函数(到目前为止,该函数简单明了,但现在从名称上看不清楚该函数到底能做什么。我想知道他会怎么做)。你能展示一个你正在使用的标记的实际例子吗?你能展示一个你正在使用的标记的实际例子吗?这看起来是一个非常优雅的解决方案。我们能在每次
之后重复这个函数吗?或者这是不可能的?Fiddle->是的,你能!一个简单的解决方案是将你的文本包装成跨距。Fiddle->很遗憾,我能无法访问实际的标记,这是一个笑话-我知道。:[谢谢你的时间,克里斯托弗。这看起来是一个非常优雅的解决方案。我们可以在每次
之后重复该函数吗?还是不可能?Fiddle->是的,你可以!一个简单的解决方案是将文本包装成跨距。Fiddle->很遗憾,我无法访问实际的标记
String.prototype.colorize = function () {
    var regex = new RegExp('[^_]+', 'gi'),
        color = $.extend(['blue', 'red'], arguments || []),
        index = 0;    

    return this.replace(regex, function(matched) {
        return '<span style="color: ' + color[index++] + ';">' + matched + '</span>';
    });
}

$.fn.colorize = function () {
    var args = arguments;

    return this.each(function () {
        this.innerHTML = this.innerHTML.colorize
            .apply(this.innerHTML, args);
    });
}