Регулярное выражение, поиск значения и его увеличение
Доброго времени суток, помогите разобраться. Есть текст, нужно найти в нем все цифровые значения и увеличить их, например, на 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> |
А чем являются эти числа?
|
Цитата:
|
Ну если исходное было объектом, то лучше изменения производить в объекте. А строковые значение, например так
<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> |
:dance:
<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, спасибо вам за помощь :) |
Цитата:
|
фонарик,
у цифр нет верхнего или нижнего регистра, то есть модификатор i не требуется, как и m в данном случае. |
Часовой пояс GMT +3, время: 20:45. |