Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.08.2012, 22:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

PashPP,
Сообщение от Deff
Приведите пару примеров входных строк и строк в итоге
То что Вы привели - То Вам и Выдали!!
Ответить с цитированием
  #12 (permalink)  
Старый 15.08.2012, 22:16
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от Deff
До конца($) и сначала(^) ( при g (глобальном поиске
Это не совсем правильно.
^ и $ обозначают начало и конец входной строки соответственно, а при флаге m - ещё и начало и конец подстроки входной строки, отделённой символами переноса строки.
Наличие флага g на это не влияет.
Примеры:
alert(/^12/.test("12sddaas")); //true
alert(/^12/.test("312ssddd")); //false
alert(/[a-z]{2}$/.exec("312ssddd")[0]); //dd
alert(/[a-z]{2}/.exec("312ssddd")[0]); //ss
alert("sddaas\nsssss\n3333".match(/^[a-z]{2}/gm).join(" ")); //sd ss
alert("sddaas\nsssss\n3333".match(/^[a-z]{2}/g).join(" ")); //sd
alert("sddaas\nsss35\n3333".match(/\d{2}$/gm).join(" ")); //35 33

Последний раз редактировалось oneguy, 15.08.2012 в 22:43.
Ответить с цитированием
  #13 (permalink)  
Старый 15.08.2012, 22:23
Профессор
Отправить личное сообщение для 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 = "===+"

Ни с re = /^(?:\+[+=]|=)\d/ , ни с re = /\+?[\+=]\d*/i такого результата не будет. По сути, вы написали ту самую регулярку. что и у меня в стартовом посте /(?:\+\=|\=|\+\+)(?=\d)\d*/ только красивее.

oneguy,
Эм. А что означает "начало и конец входной строки"?
То есть эти символы должны стоять точно первыми/последними и остальное. если есть регулярка будет хватить с серединки?
Ответить с цитированием
  #14 (permalink)  
Старый 15.08.2012, 22:27
без статуса
Отправить личное сообщение для 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,'')
 var str2=RegExp["$1"]
 alert(str2)
}
</script>
<input id="Input" type="text"  value="+=43534"><input type="button" value="Test" onclick="TstFunc()">
Ответить с цитированием
  #15 (permalink)  
Старый 15.08.2012, 22:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

PashPP,
А может не удалять гланды через жопу и не использовать match где он не нужен?
__________________
29375, 35
Ответить с цитированием
  #16 (permalink)  
Старый 15.08.2012, 22:41
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от PashPP
oneguy,
Эм. А что означает "начало и конец входной строки"?
То есть эти символы должны стоять точно первыми/последними и остальное. если есть регулярка будет хватить с серединки?
Нет. Если не установлен флаг m, то символ ^ означает, что текущий индекс во входной строке равен 0, $ - соответственно длине входной строки. Эти символы не ловят никаких символов во входной строке, а проверяют текущую позицию при поиске.
Ответить с цитированием
  #17 (permalink)  
Старый 15.08.2012, 22:43
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Deff,
Хм. Спасибо за пример.
Aetae,
Как человек не сведущий в медицине и жопах, не смогу ответить.

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

oneguy,
Хм. Что-то уже догадываюсь, но...
Текущий индекс чего?
Ответить с цитированием
  #19 (permalink)  
Старый 15.08.2012, 22:53
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Регулярка обратная данной это: /^(?:[^+][^+=]|[^=])\D+/ .
Только она вам не поможет в случае с match и приведёнными примерами. Как ни старайся, а пинцетом гвоздь не забьёшь.
__________________
29375, 35
Ответить с цитированием
  #20 (permalink)  
Старый 15.08.2012, 22:56
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Aetae,
Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая защита на сайт 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