Javascript - 将字符串中的所有数字更改为下标

Posted

技术标签:

【中文标题】Javascript - 将字符串中的所有数字更改为下标【英文标题】:Javascript - Change all numbers in a string to subscripts 【发布时间】:2013-06-23 01:31:39 【问题描述】:

我有一个输入框,用户可以在其中输入化学式。我在表格中将他们的输入显示给他们,在我的 javascript 文件中包含以下代码。

document.getElementById("entered").innerhtml = userIn;

...其中“userIn”是输入框的“id”,“entered”是我的表格行中数据的id。

现在,这是我的问题:

有什么方法可以将公式中的所有数字更改为下标,但保持字母不变?那么如果输入H2O2,只有2成为下标?

【问题讨论】:

【参考方案1】:

使用下面给出的简单正则表达式替换

document.getElementById("entered").innerHTML = userIn.replace(/(\d+)/g, '<sub>$1</sub>');

演示:Fiddle

【讨论】:

啊,是的,确实有效。使用正则表达式完全让我忘记了!谢谢!【参考方案2】:

您可以使用正则表达式将userIn 中的所有数字与&lt;sub&gt;&lt;/sub&gt; 标记括起来。以下应该有效:

userIn.replace(/(\d+)/g, "<sub>$1</sub>");

正则表达式中的+ 会将一串连续数字组合在一起,而正则表达式中的尾部g 表示替换所有数字字符串,而不是仅替换userIn 中的第一个数字字符串。

【讨论】:

以上是关于Javascript - 将字符串中的所有数字更改为下标的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript正则表达式 - 上标所有数字[重复]

如何从 JavaScript 中的字符串中获取所有数字? [复制]

[JavaScript] - replaceAll,将字符串中的字母或数字等全部替换掉的方式

更改字符串中数字的位数

Javascript中的toString和valueOf的区别

将JSON中的大数字解析为字符串[重复]