2011-04-12 44 views
171

是否有办法在某个特定字符后删除所有内容,或只是选择一直到该特定字符的所有内容?我从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); 
} 

回答

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

Sample here

编辑:

我还要提到的是原生的字符串函数是远远快于正则表达式,这应该只在必要时才真正使用(这不是这些情况之一)。

2日编辑:

更新代码占无 '?':

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/

+37

+1不使用正则表达式的一个简单的任务 – kapa 2011-04-12 07:00:21

+0

谢谢朋友 – 2016-08-03 09:17:35

+0

如果字符不存在,它不会显示任何内容 – Gino 2017-04-29 17:01:34

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

如果发现这将工作 '?'如果它不

+0

这将只删除'?'和其他一些OP没有要求 – Kevin 2013-06-04 09:04:53

+2

这将删除'?'(包含)后的所有内容 – 2015-04-08 19:12:08

+0

@Matteo true。 – 2015-04-09 11:42:08

-2

它可以伊斯利可以使用JavaScript参考文献见链接 JS String

编辑 它可以为伊斯利所做的一切。 ;)

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); 
176

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

url.split('?')[0] 

jsFiddle Demo

一个优点是,如果有是字符串中没有?这种方法会甚至工作 - 它会返回整个字符串。

+0

在这种情况下做什么? – 2011-04-12 07:17:03

+10

'split'返回一个数组(in这种情况下它有两个元素,'0'和'1'),'[0]'获得返回数组的第一个元素。 – kapa 2011-04-12 08:45:13

+22

+1,最好的事情是它总是有效的,即使没有'?' – Kevin 2013-06-04 09:03:50

-1

为我工作:

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

如果你也想保持“?“而只是删除一切后特定的字符,你可以这样做:

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

// output: /Controller/Action? 
+0

如果字符串不包含'?' – 2015-04-28 08:49:15

+0

@StephanBijzitter是的我知道,因为我的答案是:“如果你还想保留* * *“ - 显然必须在字符串中保留一个问号.. – patad 2015-10-06 13:34:56

+0

奇怪的是,我的评论似乎是针对@Imran的其他答案。不知道为什么我将它发布到您的答案上。 – 2015-10-06 13:51:16

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

输出将是/Verify/

+1

像Charm !! :) :) – Sanoop 2016-08-08 07:03:51

+0

@Sanoop Happy Coding :) :) – 2016-08-08 07:18:47

相关问题