这最好用例子来解释。
这是我做任何事情之前的一行: Monohydrogen_Phosphate HPO%4^2-
到目前为止,这是我所做的:磷酸二氢钠 | HPO%4^2-
完成后应该是这样的:磷酸一氢 | HPO 4 2-
%
会将第一个数字(如果有)和 + 或 - 符号(如果有)放入标签<sub>
中,并将^
第一个数字和 +/- 放入<sup>
标签中。
我正在使用 Javascript 的 RegEx 替换,但我不介意切换到 PHP。
这最好用例子来解释。
这是我做任何事情之前的一行: Monohydrogen_Phosphate HPO%4^2-
到目前为止,这是我所做的:磷酸二氢钠 | HPO%4^2-
完成后应该是这样的:磷酸一氢 | HPO 4 2-
%
会将第一个数字(如果有)和 + 或 - 符号(如果有)放入标签<sub>
中,并将^
第一个数字和 +/- 放入<sup>
标签中。
我正在使用 Javascript 的 RegEx 替换,但我不介意切换到 PHP。
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
- 示例:在字符串中切换单词。
允许数字和符号的示例:
var str = "HPO%4^2-";
var html = str
.replace(/%([\d\-+]+)/g, "<sub>$1</sub>")
.replace(/\^([\d+\-]+)/g, "<sup>$1</sup>");
请注意,/g
如果您希望允许多次替换,则需要使用修饰符。
这是一个更好的例子:
var text = "Monohydrogen Phosphate | HPO%4^2-";
text = text.replace(/%(\d+[+-]?)/, "<sub>$1</sub>");
text = text.replace(/\^(\d+[+-]?)/, "<sup>$1</sup>");