1

あなたが Apple であるとしましょう... サイト全体で、iPod のすべてのインスタンスが常に適切なケースであり、ブランドを維持するように構造化されている必要があります。私は、まったくアップルではないが、同じブランディングの課題を抱えている会社で同様の問題を抱えています。

そのため、誰かがサイトを実行している CMS で IPOD または iPod または iPod と入力しても、常に iPod として正しく表示されます。

IPOD ETC ETC のようにすべてを大文字にするテキスト変換 CSS が見出しにある場合でも、i の小文字は強制的に iPOD ETC ETC になります。

iPods、IPODAGE、iPoDdInG... のような複数形や変種があっても、それをどうにかすると適切なケースに変換されます - iPods、iPodage、iPodding

私は jsfiddle で見つけた次のスクリプトを使っていくつかの実験を行いましたが、私は一般的に js の教育を受けていませんが、あまり運がありません。

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

私はすでにサイト内の他の多くのもののためにjqueryを取り入れているので、それを利用しても問題ありません。

4

2 に答える 2

1

これが(私が信じている)作業バージョンです: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;
}
于 2012-09-12T19:19:27.720 に答える
0

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');

デモ

于 2012-09-12T19:56:46.430 に答える