使用替换的Javascript替换字符()

问题描述:

我有这样一段代码使用替换的Javascript替换字符()

<html> 
    <head> 
     <title>JavaScript String replace() Method</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 
     var re = /(\w+)\s(\w+)/; 
     var str = "zara ali"; 
     var newstr = str.replace(re, "$2, $1"); 

     document.write(newstr); 
     </script> 
    </body> 
</html> 

谁能解释请,这是什么,它是如何看?

var re = /(\w+)\s(\w+)/; 

而且在str.replace(re, "$2,$1);,什么是港币$ 16 & $ 1吗?

+1

查找有关正则表达式的教程。 – elclanrs

+2

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions – j08691

+0

你在那个变量里看到的是一个正则表达式。一个简单的谷歌搜索应该告诉你很多。 – SarathChandra

请参考我在上面发布的评论中的链接来了解正则表达式。 但是要向你解释你发布的代码实际上是什么......

var re = /(\w+)\s(\w+)/;是一个正则表达式。前缘和后/是分隔符和实际上没有任何与更换回事以外告诉解释什么实际的表现是:(\w+)\s(\w+)

  • ()被称为捕获括号,并记住通过浏览器,以便他们可以在以后的更换中使用。第一组分配给$ 1,第二组分配给$ 2等。

  • \w匹配包括下划线的任何字母数字字符。这相当于为[A-ZA-Z0-9 _]

  • +手段运用前面的表达式一次或多次

  • \s一个空格字符匹配

所以你的表情说看在字符串"zara ali"处输入一个或多个字母数字字符(并将它们记忆为一组,然后将它们存储在$1中),然后输入一个空白字符,然后选择另一组一个或多个字母数字字符(并将它们记忆为一组,他们在$2)。如果匹配成功,请将字符串替换为字符串"$2, $1",这是真正的第二个捕获组,然后是逗号和空格,并以第一个捕获组结束。

所以,你开始:"zara ali"和结束与"ali, zara"

var newstr = str.replace(re, "$2, $1"); 

将第一个单词替换为第一个单词并放入一个,https://msdn.microsoft.com/en-us/library/az24scfc%28v=vs.110%29.aspx是一个链接到正则表达式“作弊表”。正则表达式有点令人困惑,但一旦你正常工作,它可能会非常棒。

结帐http://regexr.com/3beap。该网站在处理正则表达式时非常有用。如果您将鼠标悬停在表达式的不同部分(蓝色栏下方),它会告诉您每个部分的功能。如果你有不同的替代部分(底部灰色条),它会告诉你每个部件的功能。

还有很多正则表达式教程,您可以通过Google搜索找到涵盖基本内容的教程。

但付诸简单的英语你的代码的作用是:

  • \w+匹配一个或多个字母
  • \s一个空格
  • ()匹配捕获匹配供以后参考,并节省了他们$#其中#是一个数字1-9,从1开始,并且按照捕获的顺序逐个增加
  • so $1是第一个()$2是第二个()

  • 在你的榜样

    $1zara$2ali

  • 在更换所有你正在做的是匹配的正则表达式
  • ,捕获它的输出,以$1$2,然后用“$ 2,$ 1替换它“变成”阿里,扎拉“。

我希望这有助于。

脚本是指在形式"FirstName LastName"变换一个字符串转换成"LastName, FirstName",使用正则表达式。该生产线

var re = /(\w+)\s(\w+)/; 

创建正则表达式,这里是它如何工作的,#表示注释细分:

/  # open regular expression 
    ( # open a capturing group, aliased as $1 
    \w # match any alphanumeric character or underscore 
    +  # match a single or multiple occurrences of the preceding token 
)  # close capturing group $1 
    \s # match a single space 
    ( # open capturing group $2 
    \w+ # match any single or multiple alphanumeric character or underscore 
    ) # close capturing group $2 
/ # close expression 

线

var newstr = str.replace(re, "$2, $1"); 

应用正则表达式str ,提取捕获组,反转它们,并在两者之间添加逗号。