我怎样才能读出第一个=符号(或中间=符号的值)的值而不是最后一个值

时间:2010-06-27 16:34:39

标签: javascript jquery regex

我阅读了有关此代码答案的答案

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;
}

但我希望通过正则表达式读取的值是第一个等号或中间等号不是最后一个 例如,我想要的价值 “我之前是一些文字”或“我介于两者之间” 从下面一行

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

2 个答案:

答案 0 :(得分:1)

我建议使用split而不是正则表达式:

var parts = this.href.split('=');
var id = parts[0]; //before first =  "I am some text before"
var id = parts[1]; //after first =  "and I am in between"
var id = parts[2]; //after second =  "and I am after"

如果您想要第一个=符号前后的文字:

var id = this.href.split('=').splice(0, 2).join('='); //I am some text before=and I am in between

答案 1 :(得分:1)

简短回答

问题是原始模式.*.*=的贪婪。

有两种方法可以解决这个问题:

  • 使用不情愿.*?=代替
  • 使用否定字符类代替[^=]*=

另见: