删除特定字符后的所有内容

2022-08-29 23:32:32

有没有办法删除某个角色之后的所有内容,或者只是选择该角色的所有内容?我从 href 到“?”获取值,并且它总是会是不同数量的字符。

喜欢这个

/Controller/Action?id=11112&value=4444

我希望仅 href,因此我想删除“?”后面的所有内容。/Controller/Action

我现在正在使用这个:

 $('.Delete').click(function (e) {
     e.preventDefault();

     var id = $(this).parents('tr:first').attr('id');                
     var url = $(this).attr('href');

     console.log(url);
 }

答案 1
var s = '/Controller/Action?id=11112&value=4444';
s = s.substring(0, s.indexOf('?'));
document.write(s);

此处的示例

我还应该提到,本机字符串函数比正则表达式快得多,正则表达式应该只在必要时使用(这不是这种情况之一)。

更新了代码以说明没有“?”:

var s = '/Controller/Action';
var n = s.indexOf('?');
s = s.substring(0, n != -1 ? n : s.length);
document.write(s);

此处的示例


答案 2

您还可以使用 split() 函数。这似乎是我脑海中最简单的一个:)。

url.split('?')[0]

jsFiddle Demo

一个优点是,即使字符串中没有,此方法也可以工作 - 它将返回整个字符串。?