Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   удаление лишнего слеша (https://javascript.ru/forum/misc/30924-udalenie-lishnego-slesha.html)

Артем125 20.08.2012 20:25

удаление лишнего слеша
 
Здравствуйте!

есть строка в которой может быть произвольное количество лишних слешей. код внизу удаляет только если там 2 слеша. в результате должен их череды оставаться только один. Спасибо

newStr = oldStr.replace('//','/');

Deff 20.08.2012 20:29

var oldStr='//dad/////dadasdasd/////////asdasdads/'
var newStr = oldStr.replace(/\/{2,}/g,'/')
alert(newStr)

Гы

oneguy 20.08.2012 20:33

newStr = oldStr.replace(/\/\//g, '/')
Извините, невнимательно прочитал задание.

Артем125 20.08.2012 20:42

Спасибо, первый вариант работает)!

Артем125 20.08.2012 20:53

а если это нужно сделать со строкой url, причем она может включать или не включать http

например 'http://site.ru//dad/////dadasdasd/////////asdasdads/' или 'site.ru//dad/////dadasdasd/////////asdasdads/'


сделал так, если плохо пожалуйста сообщите как исправить

ff =  'http://site.ru//dad/////dadasdasd/////////asdasdads/' 

ff2 =  'site.ru//dad/////dadasdasd/////////asdasdads/'

if (ff2 .indexOf('http')!= -1)
{
	{
		oldStr = ff2 .substr(7);
	}
	else
	{
		oldStr = ff2 .substr(0);
	}	
	newStr = oldStr.split("//").join('/').split("//").join('/')

	ff2 = ff2 .replace(oldStr,newStr);
}

Alexxiss 20.08.2012 21:40

Цитата:

Сообщение от Deff (Сообщение 199163)
oldStr='//dad/////dadasdasd/////////asdasdads/'
newStr = oldStr.replace(/\/{2,}/g,'/')
alert(newStr)

Гы


А как сделать тоже самое только не со слешами, а с пробелами?

Deff 20.08.2012 23:12

Цитата:

Сообщение от Артем125
а если это нужно сделать со строкой url, причем она может включать или не включать http

var ff =  'http://site.ru//dad/////dadasdasd/////////asdasdads/';
var ff2 =  'site.ru//dad/////dadasdasd/////////asdasdads/';
var ff3 =  '//site.ru//dad/////dadasdasd/////////asdasdads/';

function RelacStr (oldStr) {
  oldStr = oldStr.replace(/^((?:http:)?\/\/)/g,'!!!$1!!!');
  var newStr = oldStr.replace(/\/{2,}/g,'/').replace(/!!!(http:)?\/!!!/g,'$1//')
  return newStr;
}

alert(RelacStr (ff ))
alert(RelacStr (ff2))
alert(RelacStr (ff3))

Deff 20.08.2012 23:16

Цитата:

Сообщение от Alexxiss
А как сделать тоже самое только не со слешами, а с пробелами?

var oldStr='  dad         dadasdasd                    asdasdads '
var newStr = oldStr.replace(/\s{2,}/g,' ')
alert(newStr)

melky 20.08.2012 23:41

Deff, Вы бы лучше кинули ему ссылку на статью с регами.

Deff 20.08.2012 23:45

Цитата:

Сообщение от melky
Deff, Вы бы лучше кинули ему ссылку на статью с регами.

http://javascript.ru/basic/regular-expression


Часовой пояс GMT +3, время: 08:22.