这个javascript正则表达式做了什么?

时间:2010-11-08 15:58:03

标签: javascript regex

这是什么意思?

name = name. replace(/([A-Z]) /g, " -$1" );

是js。

更正我的意思是name = name.replace(/([A-Z]) /g, "-$1" );

3 个答案:

答案 0 :(得分:2)

这意味着:

  

取字符串“name”,然后查找每个大写字母后跟一个空格。当您找到一个匹配项时,请用连字符替换它,然后用字母替换它。完成所有事件后,将此新字符串分配回“name”变量。

例如,如果在执行此行之前“name”为AB CD,则执行此行后“name”将为A-BCD

答案 1 :(得分:1)

非常简单,[A-Z]表示匹配任何大写字母,/g位表示全局(整个输入字符串),-$1位表示替换每个匹配使用X的小组-X$1指的是第一个参数中括号中的位。

因此,如果输入为“HE LLO”,您将获得“H-E LLO”。如果输入是“He LL o”,你应该得到“He L-L o”。

我建议您阅读正则表达式,因为它们可能非常复杂。

答案 2 :(得分:0)

(A-Z)之后是一个空格。所以它应该只匹配大写字符后跟一个空格。这些被“ - ”和原始字符(反向引用)取代。所以对于字符串“HELLO MY Friends”,结果将是HELL -OM -YFriends/g表示全局,因此替换所有出现。

在perl中尝试过:

$var = "HELLO MY Friends";
$var =´ s/([A-Z]) / -$1/g;
print $var . "\n";