powiedzmy mam ciąg jak poniżej:Jak usunąć koniec sznurka, zaczynając od danego wzoru?
var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";
jaki sposób, przy użyciu JavaScript i/lub jQuery, usunąć część str
zaczynając xxx
, do końca str
?
powiedzmy mam ciąg jak poniżej:Jak usunąć koniec sznurka, zaczynając od danego wzoru?
var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";
jaki sposób, przy użyciu JavaScript i/lub jQuery, usunąć część str
zaczynając xxx
, do końca str
?
str.substring(0, str.indexOf("xxx"));
Uwaga: użyj 'str = str.substring (0, str.indexOf (" xxx "));' jeśli celem jest przypisanie zmodyfikowanej wartości do tej samej zmiennej. W ten sposób powstanie pusty łańcuch, jeśli 'xxx' nie pojawi się w oryginalnym łańcuchu. – nnnnnn
To zajmie wszystko od początku łańcucha do początku xxx
.
str.substring(0,str.indexOf("xxx"));
Wystarczy:
s.substring(0, s.indexOf("xxx"))
Bezpieczniejsza wersja obchodzenia nieprawidłowe dane i brak pasujących wzorców byłoby:
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);
}
który chcesz zadzwonić z:
var s = trump("/abcd/efgh/ijkl/xxx-1/xxx-2", "xxx");
Spróbuj użyć string.slice(start, end)
:
Jeśli znasz dokładną liczbę znaków, które chcesz usunąć, z przykładu:
var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";
new_str = str.slice(0, -11);
Spowodowałoby str_new == '/abcd/efgh/ijkl/'
Dlaczego jest to przydatne : Jeśli 'xxx'
odnosi się do dowolnego ciągu znaków (zgodnie z OP), tj .: "abc", "1k3", itp., a nd Nie wiesz z góry, czym mogą być (tj. Nie jest stała), zaakceptowane odpowiedzi, a także większość innych nie będzie działać.
Więc chcesz '' xxx-1/xxx-2 "' tylko? –
Nie, chcę usunąć go z mojego ciągu i pobrać nowy ciąg bez 'xxx-1/xxx-2' – user765368
@Derek: think OP chce:' "/ abcd/efgh/ijkl /" ' – haylem