正则表达式删除某个值的x-hrefs

时间:2013-10-28 15:44:52

标签: javascript regex

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

某些href属性值导致我出现问题。它们采用x-msg://1726/的形式,例如它们可能如下所示:

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

我想用一个简单的#。

替换这个协议的所有href标签

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

我想在javascript中执行此操作。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

REY

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