1

簡単なスクリプトがあります。画像を取得してから、コンマで分割します。ただし、を取得した[gallery]ため、タグ内の画像リンクを取得できませんUncaught SyntaxError: Invalid regular expression: missing /

誰かが見て、私の正規表現コードのどこに問題があるのか​​教えてもらえますか?

HTML

<textarea>
abc
[gallery]/content/img/upload/img-2012.03.19.-634677727044317051.jpg, /content/img/upload/img-2012.03.19.-634677727046997204.jpg, /content/img/upload/img-2012.03.19.-634677727049487347.jpg, /content/img/upload/img-2012.03.19.-634677727051787478.jpg, /content/img/upload/img-2012.03.19.-634677727054137613.jpg[/gallery]
def
</textarea>​

JavaScript

$(function(){
    var text = $('textarea').val();
    var re = /\[gallery\]([^}]+)[/gallery\]/g;
    var gallery = re.exec(text);
    alert(gallery);
});​

フィドル: http: //jsfiddle.net/BcFsg/

4

3 に答える 3

2

ええ、問題はエスケープ文字を 1 つ逃したことです

var re = /\[gallery\]([^}]+)\[\/gallery\]/g;
//                          |
//                       [ HERE ]

ここのjsfiddle http://jsfiddle.net/BcFsg/ ​​1/

于 2012-05-06T15:09:13.960 に答える
2

更新されたフィドルを参照してください...理由はわかりませんが、クロージングをエスケープする必要はないようです]

編集:間違った出力をしました(すべての角括弧をエスケープする必要があります)...更新されたフィドル編集2:画像のリストのみを警告するように更新されたフィドル

フィドル

于 2012-05-06T15:09:30.840 に答える
1

/eriting によって正規表現の途中でエスケープする必要があり\/ます。

于 2012-05-06T15:09:02.320 に答える