删除某些字符后的所有内容

有一种方法可以删除某个angular色之后的所有内容,或者只是select所有的angular色? 我从一个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); } 
 var s = '/Controller/Action?id=11112&value=4444'; s = s.substring(0, s.indexOf('?')); document.write(s); 

在这里示例

编辑:

我还应该提到,本地string函数比正则expression式要快得多,只有在必要时才真正使用它(这不是这些情况之一)。

第二编辑:

更新后的代码不占用“?”:

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

http://jsfiddle.net/L4hna/1/

你也可以使用split()函数。 这似乎是我想到的最简单的:)。

 url.split('?')[0] 

jsFiddle演示

这种方法的一个优点是即使没有,也能工作? 在string中 – 它将返回整个string。

 var href = "/Controller/Action?id=11112&value=4444"; href = href.replace(/\?.*/,''); href ; //# => /Controller/Action 

这将工作,如果它发现一个'?' 如果没有

 var fromLeft = 8; var s = '/Verify/Action?id=11112&value=4444'; s = s.substring(fromLeft , s.indexOf('/')); alert(s); 

输出将是/Verify/

如果你还想保持“?” 并删除所有特殊字符后的所有内容,你可以这样做:

 var str = "/Controller/Action?id=11112&value=4444", stripped = str.substring(0, str.indexOf('?') + '?'.length); // output: /Controller/Action? 

为我工作:

  var first = regexLabelOut.replace(/,.*/g, ""); 

它可以很容易地完成使用JavaScript参考链接JSstring

编辑它可以轻松完成。 ;)

 var url="/Controller/Action?id=11112&value=4444 "; var parameter_Start_index=url.indexOf('?'); var action_URL = url.substring(0, parameter_Start_index); alert('action_URL : '+action_URL);