假设我有一个这样的字符串:
var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";
如何使用Javascript和/或jQuery从str
开始删除xxx
的部分,直至str
的结尾?
答案 0 :(得分:29)
str.substring( 0, str.indexOf( "xxx" ) );
答案 1 :(得分:8)
只需:
s.substring(0, s.indexOf("xxx"))
处理无效输入和缺少匹配模式的更安全版本将是:
function trump(str, pattern) {
var trumped = ""; // default return for invalid string and pattern
if (str && str.length) {
trumped = str;
if (pattern && pattern.length) {
var idx = str.indexOf(pattern);
if (idx != -1) {
trumped = str.substring(0, idx);
}
}
}
return (trumped);
}
你打电话给:
var s = trump("/abcd/efgh/ijkl/xxx-1/xxx-2", "xxx");
答案 2 :(得分:3)
答案 3 :(得分:2)
尝试使用string.slice(start, end)
:
如果您知道要删除的确切字符数,请参阅示例:
var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";
new_str = str.slice(0, -11);
这会产生str_new == '/abcd/efgh/ijkl/'
为什么这很有用:
如果'xxx'
引用任何字符串(如OP所说),即:' abc',' 1k3'等,和,则执行此操作事先不知道它们可能是什么(即:不恒定),接受的答案以及大多数其他答案都不起作用。
答案 4 :(得分:1)
这将包括从字符串的开头到xxx
的开头的所有内容。
str.substring(0,str.indexOf("xxx"));