例如,我有一串文字
[text1] [text2] [text3]
我想用“ $ {”替换“ [”字符,用“}”替换“]”字符,但是只有在这种情况下,当“ [”后跟“]”时才可以。
例如
[text1] [[text2] [text3]
应该导致
${text1} [${text2} ${text3}
我该如何在Javascript中使用正则表达式来实现?
我写了这样的东西
someString = someString.replace(/\[/g, "${");
someString = someString.replace(/]/g, "}");
但这不适用于我的问题,只是替换了每个括号。
答案 0 :(得分:11)
您可以使用
<div class="editcontent">
<ul class="group">
<li class="versionicon" style="">Versiebeheer</li>
<li class="editcontenticon" style="">Edit</li>
</ul>
</div>
<div class="editwindow" style="border:solid 1px; padding: 1em;">
<div class="defaulttext">
<h4>Edit Window</h4>
<p>Test test test 123</p>
</div>
</div>
<div class="editwindowhidden" style="border:solid 1px; padding: 1em; background-color: #999;">
<h2>To be hiddent off screen....</h2>
<div class="versions" style="">
<h4>Versions Div</h4>
<p>Some version info</p>
</div>
<div class="admin" style="">
<h4>Admin Div</h4>
<p>Some admin info</p>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
详细信息
var s = "[text1] [[text2] [text3]";
console.log(s.replace(/\[([^\][]+)]/g, "$${$1}"));
-一个\[
字符[
-第1组:一个negated character class与([^\][]+)
和[
以外的任何其他1个以上的chrs匹配(请注意,在JS正则表达式的字符类中,{ {1}} char必须始终转义,即使将其放在否定的类开始处也是如此]
-一个]
字符(在字符类之外,]
并不特殊,不必进行转义)。在替换模式中,]
代表文字]
字符,$$
添加一个$
字符,{
插入第1组的值,然后添加了{
。