JavaScript. Не работают регулярные выражения

202
02 февраля 2020, 16:20

Собственно, выводит несоответствие в каждом выражении при правильном вводе (это можно проверить, если вставить по алерту в каждое условие). Первое поле должно быть 495 или 632, втрое поле должно содержать 3 цифры, третье поле должно содержать 4 цифры.

function checkFields(text1, text2, text3) { 
	var pattern = "/495|632/"; 
	var isCorrect = true; 
	if (text1.search(pattern) == -1) { 
		isCorrect = false; 
	} 
	pattern = "/\d{3}/" 
	if (text2.search(pattern) == -1) { 
		isCorrect = false; 
	} 
	pattern = "/\d{4}/" 
	if (text3.search(pattern) == -1) { 
		isCorrect = false; 
	} 
	if (isCorrect) { 
		alert("Спасибо за заказ!"); 
	} else { 
		alert("Неправильный ввод!"); 
	} 
}
<form name="myForm"> 
	<p align="center"> 
		Номер телефона: 
		<input type="text" name="text1"> 
		- 
		<input type="text" name="text2"> 
		- 
		<input type="text" name="text3"> 
	</p> 
	<p align="center"> 
		<input type="button" value="Submit" onClick="checkFields(text1.value, text2.value, text3.value)"> 
	</p> 
</form>

Answer 1

Alexey Ten дело говорит.

function checkFields(text1, text2, text3) {
    var pattern = /495|632/;
    var isCorrect = true;
    if (text1.search(pattern) == -1) {
        isCorrect = false;
    }
    pattern = /\d{3}/;
    if (text2.search(pattern) == -1) {
        isCorrect = false;
    }
    pattern = /\d{4}/;
    if (text3.search(pattern) == -1) {
        isCorrect = false;
    }
    if (isCorrect) {
        alert("Спасибо за заказ!");
    } else {
        alert("Неправильный ввод!");
    }
}

Можно короче написать

    function checkFields(text1,text2,text3){
        return alert(
            (text1.search(/495|632/) != -1 && 
                text2.search(/\d{3}/) != -1 && 
                text3.search(/\d{4}/) != -1)
                    ?"Спасибо за заказ!"
                    :"Неправильный ввод!"
        );
    }
READ ALSO
Как работать без наследования

Как работать без наследования

Есть класс A, от него наследуется класс BКак сделать, чтобы если убрать наследование, мы все еще могли получить доступ к методу A, не меняя код...

190
Как обновить определенные поля в БД?

Как обновить определенные поля в БД?

сначала нахожу строку в таблице

183
Извлечь данные combobox item

Извлечь данные combobox item

У меня есть Combobox в нем есть ComboBoxItem, помимо Content можно как то вытащить другие данные например DataContext, а затем присвоить переменной

177
Не показывает информацию о диске C

Не показывает информацию о диске C

Должен показывать инфу о всех дисках, а показывает только о диске DПочему?

174