0

こんにちは、以下の JavaScript では、左角括弧のすべてのインスタンスを \Left 角括弧に、右角括弧を \ と右角括弧に、またはピリオドを \ ドットに置き換える正規表現が必要です。

<script type="text/javascript" type="text/javascript">

        $(document).ready(function () {
            var someId = '#Something[0].AnotherSelected[5].Validator';

            alert(s);
        });

    </script>
4

4 に答える 4

3
var str = 'something[.something]].something[';
console.log(str.replace(/[\[\]\.]/g, '\\\\'));

出力

something\\\\something\\\\\\something\\';

[編集 - 以下の OP のコメントに基づく:

console.log(str.replace(/[\[\]\.]/g, function($0) { return '\\\\'+$0; }))
于 2012-08-01T10:26:10.930 に答える
2

まず、'[',']' と '.' に一致する正規表現が必要です。グローバルに。
この正規表現は次のようになります。

 /(\[|\]|\.)/g

次に、一致する部分文字列$&で連結された \\ で各出現箇所を置き換えます

var someId  = "#Something[0].AnotherSelected[5].Validator";
var newstr  = someId.replace(/(\[|\]|\.)/g, "\\\\$&")
alert(newstr)​

出力は

 #Something\\[0\\]\\.AnotherSelected\\[5\\]\\.Validator 

jsfiddleでテストできます

于 2012-08-01T10:46:35.970 に答える
0
someId = someId.replace(/\[/g, "\\\\[").replace(/\./g, "\\\\.");
于 2012-08-01T10:19:19.207 に答える
0
someId = someId.replace(/[][.]/g, '\\\\$&');
于 2012-08-01T10:44:20.967 に答える