1

First Name人のテキスト入力を挿入するフォームがありますがLast Name、各単語の最初の文字を大文字に変更したいのですが、この解決策を見つけました:

 // The textboxes with this class are modified
 $(".toUpper").change(function () {
        var str = $(this).val();
        str = str.toLowerCase().replace(/\b[a-z]/g, function (letter) {
            return letter.toUpperCase();

        });
        $(this).val(str);
    });

そして、それは動作し("hEllO"=>"Hello", "whAts uP" =>"Whats Up")ます.

これをアクセント付きの単語に適用しようとすると、問題が発生します。例:

"gonzález" = "GonzáLez",
"pérez" = "PéRez"

アクセント付きの単語の後には、再び大文字があります。

この問題を回避するために正規表現を変更するにはどうすればよいですか?

あなたが私を助けてくれることを願っています!! :)

4

2 に答える 2

3

\bは非単語境界です (つまり\b、 のいずれにも属さない任意の文字の境界を作成します[0-9a-zA-Z_])

したがって、それらのアクセント付きの単語は、あなたの単語の境界になります..

代わりにこの正規表現を使用してください

/(^|\s)[a-z\u00E0-\u00FC]/g
于 2013-05-15T19:11:35.993 に答える