1

ここで、この他の質問から多くの助けを得ました: Transform ALL CAPS to Proper Case using CSS and jQuery

しかし、タイトルにmdashが発生した場合、その直後の文字も大文字になるようにスクリプトを変更しようとしていますhttp://jsfiddle.net/wm5kZ/5/を参照してください。そして、ここにスクリプトがあります:

    $('ul.proper-case li a').each(function(){
    var ele = $(this);
    ele.text(toProperCase(ele.text())); 
    }); 

    function toProperCase(str)
    {
        var noCaps = ['of','a','the','and','an','am','or','nor','but','is','if','then', 
    'else','when','at','from','by','on','off','for','in','out','to','into','with'];
        return str.replace(/\w\S*/g, function(txt, offset){
            if(offset != 0 && noCaps.indexOf(txt.toLowerCase()) != -1){
                return txt.toLowerCase();    
            }
            return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
        });
    }

私は正規表現を理解しようとしており、mdash にさまざまなものを入れようとしましたが、その方法がよくわかりません。これまで試したことはありません。

これを行うためにスクリプトを変更する場所を教えてくれる人はいますか? また、理解できるように、それが何をしているのかを説明していただけますか? 本当にありがとう。

4

1 に答える 1

1

正規表現/\w[^\s\u2014]*/gはそれを行います。

\wこれは、単語文字 ( ) の後にゼロ個以上の ( *) 文字が続き、これらの要件を満たすものと一致します^:空白文字 ( ) または 16 進数の\sUnicode インデックス 2014 を持つ文字 ( \u2014)ではありません。—

jsFiddle デモ

于 2013-03-11T22:28:21.890 に答える