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
简短的回答
问题在于原始模式中*
的贪婪性
有两种方法可以解决此问题:
- 改为使用
*?=
- 改为使用否定字符类
[^=]*=
- (用举例说明的长答案)