如何仅为匹配的正则表达式替换第一个字符?

时间:2014-04-20 21:19:09

标签: javascript regex replace

regOpenTags = new RegExp("<+[a-zA-Z]", "g");

匹配html开始标记(例如<body>)而不匹配结束标记(例如</body>)。

我想替换<匹配标签的第一个字符,但是要做

parsedString = string.replace(regOpenTags, '');

也会取代第一个字母。换句话说,在包含replace()的字符串上使用<body>时,我更倾向于body>而不是ody>

如何使用replace()方法或正则表达式实现此目的?

1 个答案:

答案 0 :(得分:2)

您可以使用肯定前瞻来实现此目标。

regOpenTags = new RegExp("<(?=[a-z])", "gi");

正则表达式

<             '<'
(?=           look ahead to see if there is:
 [a-z]        any character of: 'a' to 'z'
)             end of look-ahead

见工作demo

使用带有否定的正向前瞻的另一种方式。

regOpenTags = new RegExp("<(?=[^/])", "g");