我们数学论坛上的很多用户使用插入符号输入 n次幂,例如x^(4y)
。
我们想要替换插入符号并使用上标,将数字和变量包装在插入符号后面。因此x ^(4y)变为x (4y)。
规则:
这是post with different caret versions。
当然我们可以使用很多js-libraries,但是不可能用jquery做这个单文本转换任务吗?
有没有人建这样的东西?
谢谢。
答案 0 :(得分:2)
我不认为这是jQuery的工作。使用普通的javascript迭代文本虽然冗长,但可能是最好的方法:
function superify(input) {
if(!input) return input;
var output = [];
var buffer;
for(var i=0;i<input.length;i++) {
var current = input[i];
if(buffer) {
if(current === ')') {
buffer.push('</sup>');
output.push.apply(output, buffer);
buffer = null;
} else {
buffer.push(current);
}
}
else if(current === '^') {
var next = input[++i];
if(next === '(') {
buffer = ['<sup>'];
} else {
output.push.apply(output, ['<sup>', next, '</sup>']);
}
} else {
output.push(current);
}
}
return output.join('');
}
(代码没有经过充分测试。通过几个例子来看看它似乎有效)