删除某些字符后的所有内容
有一种方法可以删除某个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);
你也可以使用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);