2

Javascript を使用して連絡先フォームにデータを入力していますが、文字列の 1 つが追加方法により大文字で表示されます。IE SCHOOLNAME

<script type="text/javascript">
  var userName = '<ecom:PersonFirstName runat="server" /> <ecom:PersonLastName runat="server" />';
$('div.contact-form-name input').val(userName);

var school = '<acc:AccountName runat="server" />';
$('div.contact-form-school input').val(school);

</script>

「学校」の場合をキャメルケースに変更することは可能でしょうか?

これは、名前が「SCHOOL NUMBER ONE」の場合にも適用され、「School Number One」と表示されます。

4

2 に答える 2

2

一致させて置き換えたいものは次のとおりです。

  • 最初の文字は大文字にする必要があります
  • その単語の残りは小文字にする必要があります

「Word」は、前に空白がある (または何もない) 非スペース文字として定義できます。

  • ^|\s+意味: 文字列または空白の開始
  • \S意味: 1 つの非空白文字
  • \S*意味: 任意の量の非空白文字

それらをグループ化することで、関数に渡された引数を使用できます。

"scHOOL NUMBER ONE".replace(
  /(^|\s+)(\S)(\S*)/g,
  function(match, whitespace, firstLetter, rest) {
    return whitespace + firstLetter.toUpperCase() + rest.toLowerCase();
  }
);
于 2012-08-29T13:09:21.783 に答える
0

参考までに、これを行う別の方法。

                <script type="text/javascript">

                $(document).ready(function () {

                    String.prototype.toTitleCase = function () {
                        return this.replace(/\w\S*/g, function (text) {
                            return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase();
                        });
                    };

                var userName = 'BOB IS A PERSON';
                userName = userName.toTitleCase();
                $('div.contact-form-name input').val(userName);
             });

                </script>
于 2012-08-29T13:16:40.357 に答える