如何使用jquery强制一个单词更改大小写等以保留品牌

How do you force a word to change case etc to preserve branding using jquery possibly?

本文关键字:大小写 单词更 品牌 保留 一个 jquery 何使用      更新时间:2023-09-26

假设你是苹果。。。在整个网站范围内,你希望iPod的每一个实例都是合适的案例和结构,以保留品牌。我和一家根本不是苹果的公司也有类似的问题,但它也面临着同样的品牌挑战。

因此,即使有人在运行该网站的CMS中键入IPOD、IPOD或IPOD,它也将始终正确显示为IPOD

即使标题上有一个文本转换CSS,使所有内容都像IPOD ETC ETC一样大写,它也会强制i小写为IPOD ETC ETC。

即使有iPod、IPODAGE、iPoDdInG等复数或变体。。。任何对它的诋毁都会转化为合适的情况——iPod、iPodage、iPodding

我已经对jsfiddle上的以下脚本进行了一些实验,虽然我对js基本上没有受过教育,但运气并不好。

http://jsfiddle.net/x9BSn/2/

我已经在网站上为许多其他东西引入了jquery,所以我可以很好地利用它。

这是(我相信)一个工作版本:http://jsfiddle.net/x9BSn/11/

$.fn.changeWord = function (str, className) {
    var regStr = str + "(?=(?:[^'>]|'<[^'<]*'>)*$)";
    var regex = new RegExp(regStr, "gi");
    var txt = this.html();
    txt = txt.replace(regex, function(matched) {
            return "<span class='" + className + "'>" + str+ "</span>";
    });
    this.html(txt);
};
$('#myDiv').changeWord('specialWord', 'sw');

它将用str(具有所需大小写)替换未包含在标签(< ... >)中的str(大小写不变)的所有实例。

所以,如果你想让它成为"SpEcialWorD",你可以用来实现

$('#myDiv').changeWord('SpEcialWorD', 'sw');

如下所示:http://jsfiddle.net/x9BSn/13/

然后,您可以使用类似这样的css来添加到该内容中:

.sw:after{
    content: "TM";
    vertical-align:super;
    font-size:.5em;
}

刚刚修改了Shmiddty的解决方案一点

$.fn.changeWord = function (str, className) {
    var regex = new RegExp(str, "gi");
    return this.each(function () {
        this.innerHTML = this.innerHTML.replace(new RegExp('(' + str+ '(?=(?:[^'>]|'<[^'<]*'>)*$))', 'gi'), "<span class='"+className+"'>$1</span>");
    });
};
$('#myDiv').changeWord('specialWord', 'sw');

​演示