如何正则表达式匹配并替换为katex
How to regex match and replace to katex
已更新
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)
匹配并使用正则表达式替换。因为我是通过 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>
您可以使用捕获的组在单个 .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, "\\{}")
console.log(alter);
}
test();
在第 1 组中,我们正在匹配和捕获 sqrt
。在第二组中,我们匹配 (
后跟一些数字,然后是 )
。
然后我们在第一组反向引用之前添加 \
即 </code> 并将 <code>
包裹在 {
和 }
周围
已更新
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)
匹配并使用正则表达式替换。因为我是通过 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>
您可以使用捕获的组在单个 .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, "\\{}")
console.log(alter);
}
test();
在第 1 组中,我们正在匹配和捕获 sqrt
。在第二组中,我们匹配 (
后跟一些数字,然后是 )
。
然后我们在第一组反向引用之前添加 \
即 </code> 并将 <code>
包裹在 {
和 }
周围