0

フォームを処理し、背景の変更をプレビューするための次のスクリプトがあります。

if(!options) {
        var optionsTemp = $manageBackgroundForm.serializeArray();

        var regex =/\bg[[a-z]+\]/;
        $.each(optionsTemp, function(index, options) {
            var test = options.name.match(regex);
            debug(test[0]); // DONT WORK 

        });

        var options = new Object();
        options.color = 'red';
        options.image = 'test.png';
        options.position = '20px 20x';
        options.attachment = 'fixed';
        options.repeat = 'repeat-x';
        options.size = 'cover';
    }

    $('body').css({
        'background-color': options.color,
        'background-image': 'url('+options.image+')',
        'background-position': options.position,
        'background-attachment': options.attachment,
        'background-repeat': options.repeat,
        'background-size': options.size  //contain
     });

私の入力はinputname="bg[color]"のようなものです。PHPでフォームを簡単に処理するために、このように使用します。しかし、JavaScriptでの処理に問題があります。フォームからすべてのBGオプション(およびbgオプションのみ)を取得したい-val[example]のような他の入力があります。

オプションを使用して入力をマップしたいと思います。何か案が?

4

1 に答える 1

3

これがあなたの正規表現の説明です:

NODE                     EXPLANATION
----------------------------------------------------------------------
(?-imsx:                 group, but do not capture (case-sensitive)
                         (with ^ and $ matching normally) (with . not
                         matching \n) (matching whitespace and #
                         normally):
----------------------------------------------------------------------
  \b                       the boundary between a word char (\w) and
                           something that is not a word char
----------------------------------------------------------------------
  g                        'g'
----------------------------------------------------------------------
  [[a-z]+                  any character of: '[', 'a' to 'z' (1 or
                           more times (matching the most amount
                           possible))
----------------------------------------------------------------------
  \]                       ']'
----------------------------------------------------------------------
)                        end of grouping

それはあなたが望んでいることではないと確信しています。

代わりにこれを試してください:

/\bbg\[[a-z]+\]/

b単語の境界の後に注意してください。

于 2012-08-10T12:01:38.273 に答える