Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.06.2016, 05:30
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

Регулярное выражение, поиск значения и его увеличение
Доброго времени суток, помогите разобраться. Есть текст, нужно найти в нем все цифровые значения и увеличить их, например, на 55.

<textarea id="text" style="display:block;width:400px; height:50px" name="" cols="" rows="">
f 1/1/1 2/2/2 3/3/3
f 3/3/3 4/4/4 1/1/1
f 5/5/5 6/6/6 7/7/7
f 7/7/7 8/8/8 5/5/5
f 9/9/9 10/10/10 11/11/11
f 11/11/11 12/12/12 9/9/9
f 13/13/13 14/14/14 15/15/15
f 15/15/15 16/16/16 13/13/13
f 17/17/17 18/18/18 19/19/19
f 19/19/19 20/20/20 17/17/17
f 21/21/21 22/22/22 23/23/23
f 23/23/23 24/24/24 21/21/21
f 2101/2101/2101 2133/2133/2133 2134/2134/2134
f 2134/2134/2134 2102/2102/2102 2101/2101/2101
f 2135/2135/2135 2109/2109/2109 2108/2108/2108
f 2108/2108/2108 2136/2136/2136 2135/2135/2135
f 2137/2137/2137 2116/2116/2116 2115/2115/2115
f 2115/2115/2115 2138/2138/2138 2137/2137/2137
f 2122/2122/2122 2139/2139/2139 2140/2140/2140
f 2140/2140/2140 2123/2123/2123 2122/2122/2122
</textarea>
<input type="button" value="RegExp" onclick="RegExp_01()">

<script>
function RegExp_01(){
	var raw_data = document.getElementById('text').value; //читаем текст из поля
	var reg_exp = / /img;//регулярка
	var new_data = raw_data.replace(reg_exp, " ");
	alert(new_data);

}

</script>

Последний раз редактировалось фонарик, 26.06.2016 в 05:32.
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2016, 06:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А чем являются эти числа?
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2016, 07:44
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

Сообщение от laimas Посмотреть сообщение
А чем являются эти числа?
Индекс фейса 3d модели obj формата. А вообще, это просто текст
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2016, 08:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну если исходное было объектом, то лучше изменения производить в объекте. А строковые значение, например так

<textarea id="txt" rows="22" cols="50">f 1/1/1 2/2/2 3/3/3
f 3/3/3 4/4/4 1/1/1
f 5/5/5 6/6/6 7/7/7
f 7/7/7 8/8/8 5/5/5
f 9/9/9 10/10/10 11/11/11
f 11/11/11 12/12/12 9/9/9
f 13/13/13 14/14/14 15/15/15
f 15/15/15 16/16/16 13/13/13
f 17/17/17 18/18/18 19/19/19
f 19/19/19 20/20/20 17/17/17
f 21/21/21 22/22/22 23/23/23
f 23/23/23 24/24/24 21/21/21
f 2101/2101/2101 2133/2133/2133 2134/2134/2134
f 2134/2134/2134 2102/2102/2102 2101/2101/2101
f 2135/2135/2135 2109/2109/2109 2108/2108/2108
f 2108/2108/2108 2136/2136/2136 2135/2135/2135
f 2137/2137/2137 2116/2116/2116 2115/2115/2115
f 2115/2115/2115 2138/2138/2138 2137/2137/2137
f 2122/2122/2122 2139/2139/2139 2140/2140/2140
f 2140/2140/2140 2123/2123/2123 2122/2122/2122</textarea>

<script> 
var t = document.getElementById('txt');

t.value = t.value.replace(/(\d+(?=\/|\s|\r\n|$))/g, function(n) {
    return +n + 55
})
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 26.06.2016, 08:26
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127



<textarea id="text" style="display:block;width:400px; height:50px" name="" cols="" rows="">
f 1/1/1 2/2/2 3/3/3
f 3/3/3 4/4/4 1/1/1
f 5/5/5 6/6/6 7/7/7
f 7/7/7 8/8/8 5/5/5
f 9/9/9 10/10/10 11/11/11
f 11/11/11 12/12/12 9/9/9
f 13/13/13 14/14/14 15/15/15
f 15/15/15 16/16/16 13/13/13
f 17/17/17 18/18/18 19/19/19
f 19/19/19 20/20/20 17/17/17
f 21/21/21 22/22/22 23/23/23
f 23/23/23 24/24/24 21/21/21
f 2101/2101/2101 2133/2133/2133 2134/2134/2134
f 2134/2134/2134 2102/2102/2102 2101/2101/2101
f 2135/2135/2135 2109/2109/2109 2108/2108/2108
f 2108/2108/2108 2136/2136/2136 2135/2135/2135
f 2137/2137/2137 2116/2116/2116 2115/2115/2115
f 2115/2115/2115 2138/2138/2138 2137/2137/2137
f 2122/2122/2122 2139/2139/2139 2140/2140/2140
f 2140/2140/2140 2123/2123/2123 2122/2122/2122
</textarea>
<input type="button" value="RegExp" onclick="RegExp_01()">

<script>
function RegExp_01(){
	var raw_data = document.getElementById('text').value; //читаем текст из поля
	var re = new RegExp('([0-9]+)', 'img');
	var obj_face_numbers = raw_data.replace(re, function(e){return Number(e)+55});
	alert(obj_face_numbers);

}

</script>


laimas,
спасибо вам за помощь

Последний раз редактировалось фонарик, 26.06.2016 в 08:30.
Ответить с цитированием
  #6 (permalink)  
Старый 26.06.2016, 08:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Rise
оптимизировал немного
Да конечно, если это формат файла, то скорее других толкований и быть в нем не может.
Ответить с цитированием
  #7 (permalink)  
Старый 26.06.2016, 08:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

фонарик,
у цифр нет верхнего или нижнего регистра, то есть модификатор i не требуется, как и m в данном случае.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение, помогите плиз Frozen Coyote Общие вопросы Javascript 20 20.04.2016 18:08
Регулярное выражение, помогите плиз Frozen Coyote Общие вопросы Javascript 0 15.04.2016 00:13
Регулярное выражение murtukov Общие вопросы Javascript 1 06.04.2016 12:22
Регулярное выражение BorisBritva jQuery 3 15.03.2012 19:07
регулярное выражение martinss jQuery 5 29.07.2011 12:46