什么/.*=/,''在var id = this.href.replace(/.*=/,'')中表示;?

时间:2010-01-07 20:44:49

标签: javascript jquery regex

什么是

/.*=/,'' 

表示

var id=this.href.replace(/.*=/,'');

完整代码

function delete_subscriber(){
var id=this.href.replace(/.*=/,'');
this.id='delete_link_'+id;
if(confirm('Are you sure you want to delete this subscriber?'))
$.getJSON('delete.php?ajax=true&id='+id, remove_row);
return false;
}

我认为它是正则表达式,但我对此知之甚少。

6 个答案:

答案 0 :(得分:11)

它替换任何字符(换行符除外),包括最后一个等号,没有任何内容。所以给出了这个文字:

"I am some text before=and I am some text after"

你会得到:

"and I am some text after"

鉴于此文:

"I am some text before=and I am in between=and I am after"
你会得到:

"and I am after"

答案 1 :(得分:4)

这是regular expression

此处的具体语法如下(#之后的注释):

/    # Begin an expression
.*   # Match all characters
=    # Until an equals sign is met
/    # End the expression

其余部分是一个函数,用于替换此正则表达式匹配的任何内容并将其删除。

答案 2 :(得分:2)

这意味着,将所有内容包括在内并包含一个等号并将其替换为任何内容,所以请使用

之类的内容
http://yourserver.com/blah/blah/blah/id=20 and change it to 20.

答案 3 :(得分:2)

以下是更详细的解释:

/.*=/,''
  • //表示正则表达式
  • .表示除换行符之外的任何字符
  • *表示0或任意数量(本例中为任何字符)
  • =字面意思是等号
  • ''是替换它的字符串(即没有)

答案 4 :(得分:1)

= /是一个_regular expression_匹配:首先,任何字符的序列(由'。'表示),第二个,最后,字面上匹配字符相等('=' )由角色本身指定。 '/'字符分隔正则表达式。

replace()的调用会传递一个空的替换字符串。这种替换调用的目的是删除匹配的文本。因此,此调用将删除等号左侧的文本和等号本身。

在整体功能的上下文中,在当前页面的href中,在等号后,为id分配了所有文本的值。因此,此代码正在解压缩URL以获取由URL中存在等号的标记,它会出现。

答案 5 :(得分:0)

斜杠开始/结束正则表达式。 句点与任何角色匹配。 星号表示匹配前一个表达式(任何字符)的任意数字(零个或多个)。 等号从字面上匹配等号。 因此,“。* =”表示任何内容(包括任何内容),后跟等号。 shits函数的第二个参数''是一个空字符串,因此匹配的字符串将被删除(替换为空)。

简而言之,此特定代码段将删除字符串中的任何内容(包括等号(this.href,当前URL))。所以它会提取,例如来自foo.php的“42”?id = 42。