#javascript #regex #web
#javascript #регулярное выражение #веб
Вопрос:
У меня есть URL, подобный следующему.
http:// myipaddress/folder1/folder2/themes/index.html
Кто-нибудь знает о наилучшем подходе, позволяющем всегда захватывать то, что было раньше, и не включать / themes / с использованием методов javscript string manipulation reg exp. Первый бит будет регулярно отличаться от /themes/index.html которая является статической
Комментарии:
1.
str.split("/themes")[0]
2. если вы уверены, что «themes/index.html » является статическим, просто замените его пустой строкой
"http:// myipaddress/folder1/folder2/themes/index.html".replace("/themes/index.html", "")
3.@Tommi: этот подход предполагает, что то, что следует
/themes
, всегда известно заранее, что может быть не так.4. OP сказал «the /themes/index.html которая является статической »
5. @tymeJV Почему бы тебе не сделать это ответом?
Ответ №1:
Вы могли бы использовать предварительный просмотр, чтобы получить все тексты до /themes
,
> var str = 'http:// myipaddress/folder1/folder2/themes/index.html';
undefined
> var patt1 = /^.*(?=/themes)/gi;
undefined
> var result = str.match(patt1);
undefined
> console.log(result);
[ 'http:// myipaddress/folder1/folder2' ]
Ответ №2:
вы можете использовать метод разделения javascript и удалить темы из массива строк, заданного методом разделения, а затем использовать метод объединения, чтобы объединить его с вашим разделителем (‘/’)
function removeFromStr(str,whatToRemove){
var splitted = str.split('/'),
filtered = splitted.filter(function(el){
return el !== whatToRemove;
});
return filtered.join('/');
}
test = removeFromStr('http://myipaddress/folder1/folder2/themes/index.html','themes');
console.log(test);