删除某个字符后面的所有内容

是否有一种方法可以删除某个字符之后的所有内容,或者只是选择该字符之前的所有内容?我从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);
}
520437 次浏览
var s = '/Controller/Action?id=11112&value=4444';
s = s.substring(0, s.indexOf('?'));
document.write(s);

Sample here

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

更新代码以解释没有'?”:

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

Sample here

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

如果找到'?’如果没有的话

它可以很容易地使用JavaScript做参考参见链接 JS字符串 < / p > < p >编辑 这很容易做到。;) < / p >

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

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

url.split('?')[0]

jsFiddle Demo

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

对我有用:

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

如果你还想保留"?"并只是删除该特定字符的所有,你可以这样做:

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


// output: /Controller/Action?

可能很晚了党:p

你可以使用反向引用< >强劲美元”< / >强

$' - Inserts the portion of the string that follows the matched substring.

let str = "/Controller/Action?id=11112&value=4444"


let output = str.replace(/\?.*/g,"$'")


console.log(output)

这对我来说非常有效:

var x = '/Controller/Action?id=11112&value=4444';
var remove_after= x.indexOf('?');
var result =  x.substring(0, remove_after);
alert(result);

你也可以使用split()方法,对我来说,这是实现这个目标最简单的方法。

例如:

let dummyString ="Hello Javascript: This is dummy string"
dummyString = dummyString.split(':')[0]
console.log(dummyString)
// Returns "Hello Javascript"
来源:https://thispointer.com/javascript-remove-everything-after-a-certain-character/ < / p >

如果你添加了一些json对象,那么你也需要修剪空格…所以我也添加了trim()。

let x = "/Controller/Action?id=11112&value=4444";
let result =  x.trim().substring(0,  x.trim().indexOf('?'));