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 回答