php - 为特定字符之前和之后的文本字符串着色

标签 php javascript jquery text

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

我有一个表格,其中包含如下文本字符串

MyTextString_MyTextString
MyTextString_MyTextString
MyTextString_MyTextString

为了使其更具可读性,我希望将 _ 之前的文本着色为红色,将 _ 之后的文本着色为蓝色。这可以用 jquery 或 php 实现吗?

我尝试过诸如 $('.myElement').find('_').css('color','red); 之类的东西,但不认为这是正确的方法。

是否可以只执行一次,例如如果有另一个文本字符串,它将保持第二种颜色,蓝色?即 Red_Blue_Blue_Blue(计数 = 1?)

标记示例。

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

最佳答案

我做了一个 fiddle 来展示(在我看来)一个很好的方法来做到这一点。 Here is the fiddle

有两个插件,一个扩展 String.prototype,另一个扩展 jQuery.fn。通过这种方式,您可以从字符串和元素中调用“.colorize()”。我在 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);
    });
}

希望这有帮助!

关于php - 为特定字符之前和之后的文本字符串着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12474117/

相关文章:

php - 如何在 PHP 中构建具有多个参数的 WHERE 子句

php - 我无法访问本地网络和 phpMyAdmin

php - Laravel 属性 [title] 在 Eloquent 构建器实例中不存在

php - Symfony Controller 中的 json_decode ?

javascript - Node.js:通过服务器响应发送流数据(无管道)

jQuery 更改 attr 添加空白?

javascript - 特定窗口的onload函数

javascript - 为什么我的书没有排列在正确的书架上(React-Redux)?

javascript - 什么是用于创建程序可用于执行契约(Contract)付款的转账账户的 Solana 模式?

javascript - 使用 jQuery 和 CSS 重新创建动画