繁体   English   中英

查找单词并使用正则表达式替换为html标签

[英]Find the word and replace with html tag using regex

我有一个文本方程式: 10x^2-8y^2-7k^4=0 我如何使用正则表达式在整个字符串中找到^并将其替换为<sup>2</sup> 结果应为:

在此处输入图片说明

我尝试了str = str.replace(/\\^\\s/g, "<sup>$1</sup> ")但没有得到预期的结果。

有什么想法可以解决我的问题吗?

我认为您正在寻找类似的东西

\^(\d+)

它匹配^ ,捕获指数并替换为

<sup>$1</sup>

在regex101上看到它

编辑:

为了满足您的新要求 ,请检查此小提琴 它也可以通过功能替换来处理sub

您当前的模式与插入符号匹配,后跟一个空格字符(空格,制表符,换行符等),但是您想要匹配一个插入符号,后跟一个或多个用修饰符包裹的字符,因为您的字符串在TeX中。

/\^(?:([\w\d])|\{([\w\d]{2,})\})/g

现在,使用str = str.replace(/\\^(?:([\\w\\d])|\\{([\\w\\d]{2,})\\})/g, "<sup>$1</sup>"); 应该做的工作。


您可以从此表达式中创建一个更通用的函数,该函数可以将带有特定字符前缀的字符包装到特定标签中。

function wrapPrefixed(string, prefix, tagName) {
    return string.replace(new RegExp("\\" + prefix + "(?:([\\w\\d])|\\{([\\w\\d]{2,})\\})"), "<" + tagname + ">$1</" + tagname + ">");
}

例如,调用wrapPrefixed("1_2 + 4_{3+2}", "_", "sub"); 结果为1<sub>2</sub> + 4<sub>3+2</sub>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM