#javascript #jquery #asp.net
#javascript #jquery ( jquery ) #asp.net
Вопрос:
У меня есть динамическая сетка с числовым полем, в котором я применил маскировку. Также у него есть кнопка плюс, означающая, что пользователь может добавлять столько строк, сколько захочет. Маскировка наносится следующим образом:
<input type='textbox' placeholder='00000-00-000' data-mask='00000-00-000'
Эта маскировка применяется, когда пользователь вводит 10-значный номер, но она также позволяет пользователю вводить 2 или 3-значный номер. Для этого я пытаюсь применить проверку при сохранении, чтобы она проверяла, соответствует ли введенное значение требуемому формату.
Что я сделал до сих пор, так это :
value = $(this).find('td:eq(1)').find('input').val(); //saves the entered value in a variable value
myRegExp = new RegExp(/d{5}-d{2}-d{3}/);
if (!myRegExp.test(value)) {
valid = false;
}
else
valid = true;
Значение, которое вводит пользователь, сохраняется в переменном вызываемом значении, а затем я определил свое регулярное выражение, чтобы оно соответствовало моему значению с этим выражением, но почему-то это регулярное выражение не работает. Является ли это правильным способом определения регулярного выражения? Что я здесь упускаю из виду? Мой требуемый формат — 00000-00-000. Любая помощь будет оценена.
Комментарии:
1. Ваше регулярное выражение является правильным. Вероятно, вы хотите вывести
console.log( $(this).find('td:eq(1)').find('input').val());
2. Я добавил оповещение о своем значении и выражении регулярного выражения, по которому возвращается мое регулярное выражение / d {5}-d {2}- d {3}/ поэтому, когда оно совпадает с введенным значением, оно всегда переходит в действительное значение true, что означает, что введенный формат неверен. Почему это происходит? @Greg
3. У меня здесь работает регулярное выражение: jsfiddle.net/t80h5oy1 . Когда значение совпадает с регулярным выражением, оно возвращается
true
, в противном случае возвращается false4. @Greg какова цель консоли. войдите в это? Где я должен использовать это в своем коде?
5. Все, что вам нужно сделать, это нажать
run
кнопку (верхний левый угол). Журнал консоли находится в правом нижнем углу. Он должен показывать true или false. Если вы измените00000-00-000
и нажмете выполнить, вы должны увидеть результат.
Ответ №1:
Ваша логика верна, но вы не определили конечную точку, поэтому она позволяет вставлять больше значений.
В вашем регулярном выражении он проверяет только, находятся ли 10 цифр в определенном порядке
попробуйте это
myRegExp = new RegExp(/^d{5}-d{2}-d{3}$/);
Комментарии:
1. Если он удовлетворяет вашему требованию, пожалуйста, примите ответ