Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Help. нужна помощь с регулярами (https://javascript.ru/forum/dom-window/61569-help-nuzhna-pomoshh-s-regulyarami.html)

espltd 24.02.2016 13:36

Help. нужна помощь с регулярами
 
Доброго дня! Помогите пожалуйста.

В textarea есть список телефонов такого вида
+79028380801;
+79197076971;
89199176972;
+79206496973;
89192236974;
8-9502236923;
89222236958

При нажатии на кнопку, мне надо привести их к общему виду. такому виду
89199999999. запятые нужно оставить, чтобы получилось 89199999999;89229999999

AciDWarrioR 24.02.2016 14:25

espltd,
<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<textarea rows="12">+79028380801;
+79197076971;
89199176972;
+79206496973;
89192236974;
8-9502236923;
89222236958;
</textarea>
<button onclick="same()">Привести к общему виду</button>
<div id="ggg"></div>
</body>
</html>
<script>
 	function same(){
 		var t = $('textarea').val();
 		var r1 = t.replace(/\+7/g,"8");
 		var r2 = r1.replace(/\-/g,"");
 		$('textarea').val(r2);
}
</script>

espltd 25.02.2016 10:04

Спасибо огромное! Работает, а как мне убрать точку с запятой у последнего номера после обработки? с сделать номера без переноса строк, чтобы по типу csv работало. 89226491172;89504443030; и т.д., а у последнего убрать точку с запятой

AciDWarrioR 25.02.2016 10:13

\
Цитата:

Сообщение от espltd
как мне убрать точку с запятой у последнего номера после обработки? с сделать номера без переноса строк, чтобы по типу csv работало. 89226491172;89504443030; и т.д., а у последнего убрать точку с запятой

<!DOCTYPE html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<textarea rows="12">+79028380801;
+79197076971;
89199176972;
+79206496973;
89192236974;
8-9502236923;
89222236958;
</textarea>
<button onclick="same()">Привести к общему виду</button>
<div id="ggg"></div>
</body>
</html>
<script>
 	function same(){
 		var t = $('textarea').val();
 		var r1 = t.replace(/\+7/g,"8");
 		var r2 = r1.replace(/\-/g,"");
 		var r3 = r2.replace(/\r|\n/g, '');
 		var r4 = r3.slice(0, -1);
 		$('textarea').val(r4);
}
</script>

espltd 25.02.2016 10:34

спасибо тебе большое

AciDWarrioR 25.02.2016 10:40

espltd,
Но вы только смотрите, чтобы у вас была точка с запятой в последним номере. Потому что иначе будет печалька (там происходит удаление последнего символа, я думаю понятно, чем это грозит, потерей части номера).

espltd 25.02.2016 10:57

ну мне действительно именно с последнего номера и надо убрать. Странная штука возникла, я попробовал ваш код в проекте. Мне выкатывает ошибку((


AciDWarrioR 25.02.2016 11:04

espltd,
replace() - передайте ей два аргумента. Что искать и на что заменять!

espltd 25.02.2016 11:08

причину нашел. не считывалось значение из поля телефонов. поправил. все норм. Спасибо Вам

espltd 25.02.2016 11:09

AciDWarrioR, можете мне свои контакты на всякий случай дать, мыло или аську. или вконтакте. Мало ли шабашка по яваскрипту для ВАС будет :) . Буду знать кому предложить


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