Кавычкий в регулярках
Всё, я сдаюсь. Пишу вопрос. Такое дело. Я раньше на php много с регулярками работал, теперь вот в JS вникаю, и снова нужны регулярки, в частности проверить введённые в форму данные. Дошёл до поля с текстом для письма. Всё работает офигенно, кроме него. В нём я хотел исключить одинарные, двойные кавычки и обе наклонные с амперсандом. Уже дошёл до
if (!(/\"+/i.test(form.textm.value))){ Но ему всё пофигу. Игнорирует этот if и всё. Что не так? Сколько не искал информации - не нашёл. Спасибо! С другими полями всё ок. Конкретно про кавычки и пр. вопрос. |
usesa,
:-? var reg = /[\/"'\\]/; alert([reg.test(' " '), reg.test(' \\ '), reg.test(' / '), reg.test(" ' "), reg.test(' test ')]) |
if(!/["'\\\/]/.test(form.textm.value)) { alert('Всё ок'); } |
И так пропускает. Может это из-за бутстрапа? Скину сразу код, чтоб люди меня поправляли, ибо не волшебник, только учусь
<div class="row content"> <div class="col-md-8 col-lg-8 col-xs-12"> <form class="form-horizontal horform" onsubmit="return checkForm(this)"> <div class="input-group"> <div class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> </div> <input type="fio" class="form-control" id="fio" placeholder="Ваше имя"> </div> <div class="input-group"> <div class="input-group-addon"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> </div> <input type="phone" class="form-control" id="phone" placeholder="Любой ваш контакт"> </div> <div class="alert alert-info" id='succes' style="margin-top: 20px;display: none;"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> Спасибо за доверие! Мы с вами обязательно свяжемся!</div> <div class="alert alert-danger" id='err_email' style="margin-top: 20px;display: none;"></div> <textarea class="form-control" rows="10" maxlength="2000" id="textm" placeholder="Сюда введите текст вашего сообщения. Мы вам обязательно ответим!"></textarea> <button type="submit" class="btn btn-warning btn-primary" style="float: right;"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> </button> </form> <script type="text/javascript"> function checkForm(form){ if ((document.getElementById('fio').value=="") ||(document.getElementById('phone').value=="") ||(document.getElementById('textm').value=="")) { document.getElementById('err_email').style.display='block'; document.getElementById('err_email').innerHTML='Вы что-то забыли заполнить!'; return false; } if (/[\\\/\"\'\>\<\$\}\{]+/i.test(form.phone.value)){ document.getElementById('err_email').style.display='block'; document.getElementById('err_email').innerHTML='Вы что-то намудрили в контактах! (например, нельзя кавычки)'; return false; } if (!(/^[а-яА-ЯёЁA-Za-z0-9-]{2,15} ?([а-яА-ЯёЁA-Za-z0-9-]{2,15})?$/i.test(form.fio.value))){ document.getElementById('err_email').style.display='block'; document.getElementById('err_email').innerHTML='Лишние символы в контактах!'; return false; } if(!/["'\\\/]/.test(form.textm.value)){ document.getElementById('err_email').style.display='block'; document.getElementById('err_email').innerHTML='Пожалуйста, не используйте спецсимволы в сообщении!'; alert('Всё ок'); return false; } if ((document.getElementById('fio').value.length < 2 ) ||(document.getElementById('phone').value.length < 8 ) ||(document.getElementById('phone').value.length > 150 ) ||(document.getElementById('fio').value.length > 31 )){ document.getElementById('err_email').style.display='block'; document.getElementById('err_email').innerHTML='Ваше Величество! Представьтесь нормально. Нам же вам перезванивать...'; return false; } var req; if (window.XMLHttpRequest) // normal browser req = new XMLHttpRequest(); else if (window.ActiveXObject) { //IE try { req = new ActiveXObject('Msxml2.XMLHTTP'); // IE разных версий } catch (e){} // может создавать try { // объект по разному req = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e){} } if (req) { req.onreadystatechange = function() { if (req.readyState == 4 && req.status == 200) { document.getElementById('succes').style.display='block'; document.getElementById('err_email').style.display='none'; } }; req.open("POST", 'mailz.php', true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send('fio='+document.getElementById('fio').value+'&phone='+document.getElementById('phone').value+'&textm='+document.getElementById('textm').value); } else alert("Браузер не поддерживает AJAX"); return false; } </script> <em>Мы никогда не разглашаем данные наших клиентов!</em> </div> </div> </div> |
А ты учитываешь, что любые проверки на стороне клиента обходятся элементарно?
|
Цитата:
|
Что тут непонятного? Весь этот твой код отправляется на мою машину и исполняется у меня, чо хочу с ним - то и делаю. Захочу - переопределю функцию checkForm на свою без всяких проверок. Захочу - вообще не буду открывать браузер и отправлю запрос через curl.
Код:
curl --data-urlencode "\ |
Да, кстати, какого отправка формы делает в функции с названием checkForm?
|
Смысл ясен, спасибо! Но обработка формы ведь происходит в php. Объясните мне пожалуйста, что читать, куда смотреть, и как всё правильно сделать. Спасибо! Если у вас есть возможность и желание, я был бы рад пообсуждать такие темы в icq 653один89
|
re=/['"]/ if(!re.test("foo'bar")) alert("foo") if(!re.test('foo"bar')) alert("bar") if(!re.test('foobar')) alert("baz") // baz |
Часовой пояс GMT +3, время: 08:10. |