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

Javascript - Change all numbers in a string to subscripts

本文关键字:数字 下标 字符串 Javascript-      更新时间:2023-09-26

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

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

其中"userIn"是输入框的"id","entered"是表行中数据的id。

现在,我的问题是:

有没有办法把公式中的所有数字都改成下标,但字母不变?那么,如果输入了H2O2,那么只有2变成下标?

使用下面给出的简单regex替换

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

演示:Fiddle

您可以使用正则表达式将userIn中的所有数字用<sub></sub>标记括起来。以下内容应该有效:

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

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