2013-02-14 38 views
0

我读了很多链接的问题,但无法找到我需要的。这里是我的问题:在Javascript中替换正则表达式匹配的结果

inputStr = "<a b c> <c f a> <h a d>"; 

,我想抓住唯一的每个<...>

OutputStr = "a c h"; 

我尝试的第一个元素类似

mychar.replace(/<[a-z](.*)>/g, '$1'); 

$1只给我<a b c>

有没有人想法?

回答

7

您的正常表达是错误的。你需要匹配第一个字母,但不能匹配后面的所有字母。不要在目前的情况下,忘记一个懒惰的比赛?

"<a b c> <c f a> <h a d>".replace(/<([a-z]).*?>/g, "$1"); // "a c h" 

REF:https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

+0

他就不必再问一次,他有一个变化的问题:)说明会很好 – 2013-02-14 14:17:20

+0

@MichelFeldheim所以你认为我的回答是错误的? ;)如果答案没有提供解释,那么我们假设OP会自己发现它是如何工作的。至少我总是这样做,如果我得到解决方案。此外,我认为不值得重写[MDN关于正则表达式的文章](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions)。 – VisioN 2013-02-14 14:21:17

+2

答案是正确的,现在它是有帮助:) – 2013-02-15 08:17:10

1
inputStr = "<a b c> <c f a> <h a d>"; 

OutputStr = inputStr.replace(/<([a-z]).*?>/g, "$1"); 
+2

这个答案似乎并不增加了前一个。 – 2013-02-14 14:12:15

相关问题