Кавычкий в регулярках
Всё, я сдаюсь. Пишу вопрос. Такое дело. Я раньше на 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, время: 01:10. |