更新
function test() {
var text = "3 sqrt(11) %i - 1 1 + 3 sqrt(11) %i 50 50 3 sqrt(11) %i - 1 1 + 3 sqrt(11) %i [x = - -----------------, x = -----------------] 50 50 3 sqrt(11) %i - 1 1 + 3 sqrt(11) %i 50 50i";
var alter = text.replace("()","{}").replace(/(\d+)?([sqrt])/g,"\\");//i need a answer 3\\sqrt{11}
alert(alter);
katex.render(alter, document.getElementById('demo'));
}
test();<script src="https://khan.github.io/KaTeX/bower_components/katex/dist/katex.min.js"></script>
<link href="https://khan.github.io/KaTeX/bower_components/katex/dist/katex.min.css" rel="stylesheet"/>
<p id="demo"></p>
我的字符串3sqrt(11)在匹配和替换使用regex .Because,我得到输出通过katex。我试用了以下脚本:
function test() {
var text = "3sqrt(11)";
var alter = text.replace("()","{}").replace(/(\d+)?([sqrt])/g,"\\");//i need a answer 3\\sqrt{11}
alert(alter);
katex.render(alter, document.getElementById('demo'));
}
test();<script src="https://khan.github.io/KaTeX/bower_components/katex/dist/katex.min.js"></script>
<link href="https://khan.github.io/KaTeX/bower_components/katex/dist/katex.min.css" rel="stylesheet"/>
<p id="demo"></p>
发布于 2016-09-24 08:23:33
可以在单个.replace调用中使用捕获的组执行此操作:
function test() {
var text = "3 sqrt(11) %i - 1 1 + 3 sqrt(11) %i 50 50 3 sqrt(11) %i - 1 1 + 3 sqrt(11) %i [x = - -----------------, x = -----------------] 50 50 3 sqrt(11) %i - 1 1 + 3 sqrt(11) %i 50 50i";
var alter = text.replace(/(\d+)\s*(sqrt)\((\d+)\)/g, "$1\\\\$2{$3}")
console.log(alter);
}
test();
在这里的第一组,我们是匹配和捕获sqrt。在第二组中,我们匹配(,然后是一些数字,然后是)。
在替换中,我们在第一组反向引用( $1 )之前添加$1,并将$2封装在{和}周围。
https://stackoverflow.com/questions/39673993
复制相似问题