REGEX替换JavaScript交换单词中的函数

时间:2014-02-24 02:16:02

标签: javascript regex

我正在关注Elequent Javacript's website page on regular expressions并感到有点沮丧。

该页面显示了这个示例,它在删除逗号的同时交换名字和姓氏:

var names = "Picasso, Pablo\nGauguin, Paul\nVan Gogh, Vincent\n";
document.writeln(names.replace(/([\w ]+), ([\w ]+)/g, "$2 $1"));

作者简要解释了它的作用,但花费很少的精力来解释它的工作原理,以及这个例子的主要特征是什么。

任何人都可以帮助我理解(“1美元和2美元”是什么以及它们引用的内容以及为什么

1 个答案:

答案 0 :(得分:2)

$1$2引用了第一个和第二个捕获组匹配项(()之间的模式)。

给定命令将查找正则表达式/([\w ]+), ([\w ]+)/的匹配项并将其应用于所有行(g选项)。对于每个匹配,它将替换与$2 $1匹配的字符串,即第二个捕获的值,后跟空格,然后是第一个捕获的值。

有关正则表达式的更多信息和良好的起点,您可以转到regular-expressions.info这是一个非常完整的参考。