【发布时间】:2013-06-19 05:05:04
【问题描述】:
我在MDN documentation 中遇到了这个关于在字符串上使用替换方法的示例。
这是那里引用的例子
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1");
print(newstr);//Smith,John
我将正则表达式更改为以下内容并进行了测试。
var re = /(\w?)(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$1, $1");
newstr;//J, ohn Smith
var newstr1=str.replace(re,"$2, $1");
newstr1;//ohn, J Smith.
在此示例中,$1 必须是 J,$2 必须是 ohn Smith。
当我颠倒newstr1 的$n 顺序时,它应该是'ohn Smith, J'。但事实并非如此。
我对 $1 和 $2 的理解(子字符串匹配正确)以及为什么 newstr1 不同?
感谢cmets
【问题讨论】:
标签: javascript string methods replace