1

这最好用例子来解释。

这是我做任何事情之前的一行: Monohydrogen_Phosphate HPO%4^2-

到目前为止,这是我所做的:磷酸二氢钠 | HPO%4^2-

完成后应该是这样的:磷酸一氢 | HPO 4 2-

%会将第一个数字(如果有)和 + 或 - 符号(如果有)放入标签<sub>中,并将^第一个数字和 +/- 放入<sup>标签中。

我正在使用 Javascript 的 RegEx 替换,但我不介意切换到 PHP。

4

4 回答 4

3
var txt = "HPO%4^2-";
txt = txt.replace(/%(\d*[+-]?)/, "<sub>$1</sub>");
txt = txt.replace(/\^(\d*[+-]?)/, "<sup>$1</sup>");

txt     //HPO<sub>4</sub><sup>2-</sup>

干得好。

有关更多信息,请参阅 MDN replace- 示例:在字符串中切换单词

于 2012-07-20T00:16:30.360 回答
2

允许数字和符号的示例:

var str = "HPO%4^2-";
var html = str
    .replace(/%([\d\-+]+)/g, "<sub>$1</sub>")
    .replace(/\^([\d+\-]+)/g, "<sup>$1</sup>");

请注意,/g如果您希望允许多次替换,则需要使用修饰符。

于 2012-07-20T00:19:57.420 回答
1

这是一个更好的例子:

var text = "Monohydrogen Phosphate | HPO%4^2-";
text = text.replace(/%(\d+[+-]?)/, "<sub>$1</sub>");
text = text.replace(/\^(\d+[+-]?)/, "<sup>$1</sup>");
于 2012-07-20T00:21:18.320 回答
1
于 2012-07-20T00:54:47.840 回答