Регулярка: выдает true, но не хочет давать false
Всем салют! Возникла трабла следующего характера: при поиске вхождения подстроки в строку в переменную закидывается true, а false ни в какую, при отрицательном результате. Например '745' входит в подстроку '745-84' , в результате true. А если '756', то по идее false. Может кто сталкивался с подобными чудесами. :wacko: Вот сама функция:
var docTEXT = requestObj.responseText; // это ответ от сервера |
А теперь без лишнего мусора, просто регулярка и текст, на котором она якобы не правильно работает.
|
reg = new RegExp('^'+document.ACT.article.value); //допустим тут '765'
result = reg.test('766-489'); alert(result); - вот тут не выводит значение false, только true Так понятнее? |
У меня сразу false .
|
если подставляешь вместо document.ACT.article.value готовое значение, допустим '735' то false, а если выдергиваешь value из поля ввода article формы ACT, то кусок кода ниже:
document.getElementById("art").style.display = 'none'; document.ACT.art_name.value = ''; document.ACT.kol_b.value = ''; document.ACT.coast.value = ''; при значении false не выполняет((( |
Так там же к value пустая строка присваивается. Регулярка, получается, будет проверять, есть ли у строки начало. У любой строки есть начало.
|
Ну смотри, если в поле ввода article будет value 7, значит регулярка reg = ^7. Я начинаю тестить строку допустим '54': reg.test('54'); В итоге-то должно быть false, а у меня при false вообще alert не выводит! Только когда true... Мне нужно проверить, есть ли вхождение вводимого значения в поле ввода в тестируемой строке только с начала строки, т.е. 765 в 765-456 даст true, а 765 в 465-765 даст уже false.
|
Попробуй экранировать символы в value:
RegExp.escape = function(str) { return (str + '').replace(/([?!^$.(){}:|=[\]+\-\/\\*])/g, '\\$1'); }; |
попробуй проверить, а приходит ли в document.ACT.article.value какое-нибудь значение....
|
Тема закрыта, во всем "виноват" был docTEXT на который приходило "", из-за этого блок просто пропускался) Спасибо всем за помощь, особенно мне)))
|
Часовой пояс GMT +3, время: 17:46. |