Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2012, 20:40
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Простая регулярка
Еще раз всем привет.
Пробую написать простую регулярку так, чтобы попадало все, что НЕ начинается с += или = или ++ и после цифры.

В общем, регулярку чтоб было сначала += или = или ++ и после цифры написал:
str = prompt("sd");
re = /(?:\+\=|\=|\+\+)(?=\d)\d*/;
found = str.match(re);
alert(found)


Нужна полностью обратная ей. Кстати, я эту правильно написал, вроде работает?
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2012, 21:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

PashPP,
Приведите пару примеров входных строк и строк в итоге
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2012, 21:12
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Deff,
f = str.match(re)
re = ???

str = "+=43534"
f = null

str = "++2323"
f = "null"

str = "=343434"
f = null

str = "dsfsdf"
f = "dsfsdf"

str = "=43gfvb"
f = "gfvb"

str = "+====+"
f = "===+"
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2012, 21:13
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

В общем, мне это надо чтоб ввод всех значений, кроме начинающихся с ++, =, += и дальше цифры отменялся.
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2012, 21:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

str = "=43gfvb";
alert(/^(?:\+[+=]|=)\d/.test(str) ? str : null)

str = "d43gfvb";
alert(/^(?:\+[+=]|=)\d/.test(str) ? str : null)
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2012, 21:42
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<pre>
f = str.match(re)
 re = ???

 str = "+=43534"
 f = null

 str = "++2323"
 f = "null"

 str = "=343434"
 f = null

 str = "dsfsdf"
 f = "dsfsdf"

 str = "=43gfvb"
 f = "gfvb"

 str = "+====+"
 f = "===+"
</pre>

<script type="text/javascript">
function TstFunc()  {
 var a = document.getElementById('Input');
 var str = a.value;
 var str2= str.replace(/\+?[\+=]\d*/i,'')

 alert(str2)
}
</script>
<input id="Input" type="text"  value="+=43534"><input type="button" value="Test" onclick="TstFunc()">
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2012, 21:42
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Aetae,
/^(?:\+[+=]|=

Сорри, но не то.
Кстати, может мне кто-то обьяснить простыми словами, что делает символ ^ и $ в начале и конце строк? Со справочника не сильно понял. То ли оно ищет с конца/начала, то ли еще что-то...
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2012, 21:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от PashPP
То ли оно ищет с конца/начала,
До конца($) и сначала(^) ( при g (глобальном поиске
Ответить с цитированием
  #9 (permalink)  
Старый 15.08.2012, 21:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

PashPP,
У Aetae, Имхо правильнее он ток звездачку забыл
(Поправь в моей версии
var str2=str.replace(/^(?:\+[+=]|=)\d*/,'')
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2012, 22:12
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Deff,
Спасибо, конечно.
Но вы оба написали обратное тому, что я просил.
Регулярка должна ловить все, что НЕ ловит предыдущие ваши да и моя с стартовом посте.
Вот в примере с replace должно удаляться все, кроме += / ++ / == и цифры. а не наоборот.
Конечно, у меня есть идеи, как это сделать и с регулярками выше, но это немного криво и мне бы чисто ради интереса и обучению регуляркам хотелось увидеть регулярку полностью обратную имеющимся.
Которая должна брать все, что не похоже на +=434343.

Сообщение от Deff
То ли оно ищет с конца/начала,

До конца($) и сначала(^) ( при g (глобальном поиске
Эм. В смысле, что при значке ^ рядом с знаком, она будет искать именно его, а потом все остальное? Можно пример, пожалуйста, с небольшим пояснением.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая защита на сайт any.zicky Общие вопросы Javascript 4 07.06.2012 00:59
регулярка для парсинга SQL запроса Yurik Общие вопросы Javascript 2 09.12.2011 15:08
простая форма авторизации sedoyksa Общие вопросы Javascript 5 01.10.2011 22:29
Как написать это грамматно, простая функция Harvey jQuery 3 13.09.2011 12:30
Регулярка на дробные числа shkarbatov Javascript под браузер 14 29.07.2011 01:05