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

这个javascript正则表达式做什么?,javascript,regex,Javascript,Regex,这是什么意思 name = name. replace(/([A-Z]) /g, " -$1" ); 是js 更正我的意思是name=name.replace(/([A-Z])/g,“-$1”)它的意思是: 以字符串“name”为例,查找每个大写字母后跟一个空格。当您找到一个匹配项时,用连字符替换它,然后替换字母。对所有事件执行此操作后,将此新字符串分配回“name”变量 例如,如果在执行此行之前,“name”是AB CD,那么在执行此行之后,“name”将是A-BCD。非常简单地说,[A-Z

这是什么意思

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

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

它的意思是:

以字符串“name”为例,查找每个大写字母后跟一个空格。当您找到一个匹配项时,用连字符替换它,然后替换字母。对所有事件执行此操作后,将此新字符串分配回“name”变量


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

非常简单地说,
[A-Z]
表示匹配任何大写字母,
/g
位表示全局执行(整个输入字符串),
-$1
位表示将每个匹配组
X
替换为
-X
<代码>$1
引用第一个参数中括号中的位

因此,如果输入为“HE-LLO”,则会输出“H-E-LLO”。如果输入为“He LL o”,则应将“He L-L o”输出

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

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

在perl中尝试过:

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

那是JavaScript吗?Regex的格式可能会有所不同,这取决于您用什么编程语言来表示它。我很确定/g表示它只是在字符串的末尾,不是吗?我在javascript中快速测试了这一点,并将“HEllo MY friends”替换为“HEllo M-Y friends”。@Matt:它查找每个大写字母,后跟一个空格,空格被删除。javascript可能无法识别/g标志。如果它像Perl,那么/g意味着全局。我把正则表达式搞砸了。在[a-Z]后面有一个空格。g在PERL中的意思是“全局”。因此,该模式寻找后跟空格的大写字母。@Gazillion:No。结尾处的
g
表示它是“gobal”,因此它在表达式的所有出现处重复出现,而不仅仅是第一个。这是什么意思$1是指第一个参数中括号中的位。
$1
是所谓的“反向引用”。每对括号定义了一个backreference,该backreference稍后可由
$n
语法引用。第一个反向参考是
$1
,第二个是
$2
,依此类推。因此表达式的“replace”部分引用正则表达式中的第一个backreference。