Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何读取first=sign的值(或middle=sign的值)而不是最后一个值_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 如何读取first=sign的值(或middle=sign的值)而不是最后一个值

Javascript 如何读取first=sign的值(或middle=sign的值)而不是最后一个值,javascript,jquery,regex,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; } 但我希

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

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"

我建议使用
split
而不是regex:

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
简短的回答 问题在于原始模式中
*
的贪婪性

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

  • 改为使用
    *?=
  • 改为使用否定字符类
    [^=]*=
另见:
  • (用举例说明的长答案)