0

<h2>画像の代替テキストに基づいて生成されたタグがあります。テキストの大文字の部分にスタイルを追加したい。

私の計画は、javascript / jquery を使用して大文字のテキストを見つけて<strong>タグで囲み、css を使用してスタイルを設定することです。

これを行う方法はありますか?

ありがとう!

4

3 に答える 3

4

sometext.match(/[A-Z]+/g)文字列内のすべての大文字のテキストの配列を提供するので、それをループしてスタイルを追加します。

少なくとも2つの大文字を一致させるには、.match(/([A-Z]+){2}/g)

長さが2以上のすべての大文字の文字列部分を文字列内で囲むには(たとえば)次のように<b></b>使用します。

sometext.replace(/([A-Z]+){2}/g,function(a){return '<b>'+a+'</b>';});
于 2012-06-07T11:04:17.813 に答える
1
function findUC() {
    var h2 = $('h2').text();
    var exploded = h2.split(' ');
    var pattern = new RegExp('[^A-Z]');
    var i;
    var style = '';
    for (i = 0; i < exploded.length; i++) {
       if (!exploded[i].match(pattern)) {
           style += '<span style="color:blue;">' + exploded[i] + '<span>';
       } else {
           style += exploded[i];
       }
    }
    $('h2').text(style);
}
findUC();​

これはあなたを助けるでしょう。必要に応じてこれを変更します。ワーキングフィドルはこちら

あなたが言及した要件について、私はこの回答を編集しています。

function findUC() {
var h2 = $('h2').text();
var exploded = h2.split(' ');
var pattern = new RegExp('[^A-Z]');
var i, j;
var style = '';
var character = '';
for (i = 0; i < exploded.length; i++) {
    if (!exploded[i].match(pattern)) {
        var firstletter = exploded[i].substr(0,1);
        var lastletter = exploded[i].substr(1, exploded[i].length);
        style += firstletter;
        style += '<span style="color:blue;">' + lastletter + '<span>';
    } else {
        style += " "+exploded[i]+" ";
    }
}


   $('h2').text(style);
}
findUC();​

フィドルは私の最後のコメントで言及されています。やってみて。

編集 3: コメントで述べたように、私はフィドルを変更しました: このフィドルを試してください

于 2012-06-07T11:17:54.130 に答える
0

正規表現を使用して、大文字のパッセージを見つけることができます。のような正規表現だけ/[A-Z]{2,}/gです。これにより、{2,}互いに続く少なくとも 2 つの大文字にのみ一致します。/\b[A-Z]+\b/g別の方法として、 などの単語を除外したい場合に使用できますHELlo。位置を取得したら、さまざまなアプローチを使用して HTML コードを接続/作成できます$('<div/>').append(...)

于 2012-06-07T11:08:54.523 に答える