在javascript中选择圆括号之间的文本
我需要使用javascript选择一个位于圆括号之间的文本,并将其全部包装在一个范围内:在javascript中选择圆括号之间的文本,javascript,html,regex,Javascript,Html,Regex,我需要使用javascript选择一个位于圆括号之间的文本,并将其全部包装在一个范围内: <p>Just some text (with some text between brackets) and some more text</p> 只有一些文本(括号中有一些文本)和更多的文本 应成为: <p>Just some text <span class="some-class">(with some text between brackets)
<p>Just some text (with some text between brackets) and some more text</p>
只有一些文本(括号中有一些文本)和更多的文本
应成为:
<p>Just some text <span class="some-class">(with some text between brackets)</span> and some more text</p>
只有一些文本(括号中有一些文本)和更多的文本
我认为使用regex应该可以做到这一点,但我完全不熟悉在javascript中使用regex。有人能帮忙吗?谢谢 oldString='只有一些文本(括号中有一些文本)和更多的文本;
oldString = '<p>Just some text (with some text between brackets) and some more text</p>';
newString = oldString.replace(/\((.*?)\)/g, '<span class="some-class">($1)</span>');
newString=oldString.replace(/\(.*?\)/g'($1');
试试这个:
<p id="para">Just some text (with some text between brackets) and some more text</p>
<input type="button" value="Change Text" onclick="ChangeText()"/>
<script>
function ChangeText()
{
var para = document.getElementById("para");
var text = para.innerHTML;
para.innerHTML = text.replace(/(.*)(\(.*\))(.*)/g, "$1<span class=\"some-class\">$2</span>$3")
}
</script>
只有一些文本(括号中有一些文本)和更多的文本
函数ChangeText()
{
var para=document.getElementById(“para”);
var text=para.innerHTML;
para.innerHTML=text.replace(/(.*)(\(.*))(.*)/g,“$1$2$3”)
}
这应该可以做到这一点(str
是保存要操作的文本的字符串):
str.replace(\([^()]*\),“$1”);
它不允许括号内有(
,)
,
。这避免了嵌套问题和HTML标记在括号中落下。您可能需要调整它以满足您的确切需求
由于您不熟悉正则表达式,如果您想了解更多信息,我建议您阅读。使用RegExp对象:
var str = "<p>Just some text (with some text between brackets) and some more text</p>";
var re = new RegExp("\(+(.*)\)+", "g");
var myArray = str.replace(re,"<span class="some-class">($1)</span>" );
var str=“只有一些文本(括号中有一些文本)和更多的文本”;
var re=new RegExp(“\(+(.*)\)+”,“g”);
var myArray=str.replace(re,“($1)”);
使用文字:
var myArray = str.replace(/\(+(.*)\)+/g,"<span class="some-class">($1)</span>")
var myArray=str.replace(/\(+(.*)\)+/g,“($1)”)
您不需要3个捕获组。只是不匹配字符串的其余部分。
var myArray = str.replace(/\(+(.*)\)+/g,"<span class="some-class">($1)</span>")