把一切都放在某一点上

时间:2012-02-15 21:24:49

标签: javascript string replace

Lorem ipsum dolor sit amet consectetur adipisicing elit.

是否可以使用.replace更改上述句子中amet以外的所有内容?

1 个答案:

答案 0 :(得分:9)

是。

str.replace(/(amet).+$/, '$1FOO')

如果"amet"实际上包含奇怪的字符,则必须“正则引用”它们:.-[等。

修改
解释正则表达式很难。

  • (amet) =>捕获文字“amet”。捕获,因为你想保留那部分以进行替换,因为你想要替换之后的所有内容“amet”。
  • .+ =>任何类型的字符(.),但至少有一个(+)。如果您想要至少0,则可以使用*代替+
  • $ =>主题的结尾(str)。在这种情况下,这是不必要的,因为正则表达式是贪婪的,并且在你告诉它之前不会停止(并且因为.+永远不会停止匹配,所以结束就是结束)
  • $1 =>这是“第一场比赛”的占位符。在这种情况下,它是"amet",因为我们匹配了文字"amet"。如果正则表达式是可变的,那么$1将是未知的(这就是它的存在)。
  • FOO =>另一个文字(替代)。你的问题包括“......改变一切......” - 在我看来 - 意思是“替换为"FOO"”。

足够清楚?如果没有,我会很乐意尝试更好地解释。永远是一个很好的资源(对于年轻人和老年人,明智的,不那么明智的,专业人士和初学者):http://www.regular-expressions.info/

总结:正则表达式非常棒