0

我正在从 html 字符串的页面上显示电子邮件。

某些 href 属性值给我带来了问题。它们采用 的形式x-msg://1726/,例如,它们可能如下所示:

<base href="x-msg://1726/">

我想用一个简单的 # 替换这个协议的所有 href 标签。

如何在正则表达式中指定要在与 x-msg 协议匹配的 href 属性上匹配并将其替换为空字符串或 # 符号?

我想在javascript中做到这一点。

4

2 回答 2

0

一个潜在的正则表达式是这个:

/href ?= ?"x-msg:\/\/\d+\/"/

此处示例:http ://regex101.com/r/aJ5gZ6

于 2013-10-28T16:13:25.903 回答
0

使用 JavaScript,您可以在替换中使用分组来重用匹配的字符串。

str = str.replace(/(href=")x-msg:\/\/([^"]+)\//ig', '$1#$2');

雷伊

在您的示例中,结果将是<base href="x-msg://1726/">. 如果您确信 x-msg 仅在 href 中,那么您当然可以通过从正则表达式中删除所有 html 标记来降低正则表达式的复杂性。另外我不知道 x-msg 是否可以包含字母数字字符,或者只是像您的示例中的数字。最好使用\d或设置匹配指定字符。

于 2013-10-28T16:14:37.007 回答