2011-04-12 77 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

相關問題