Проверка, чтобы проверить, правильно ли пользователь ввел формат

#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 , в противном случае возвращается false

4. @Greg какова цель консоли. войдите в это? Где я должен использовать это в своем коде?

5. Все, что вам нужно сделать, это нажать run кнопку (верхний левый угол). Журнал консоли находится в правом нижнем углу. Он должен показывать true или false. Если вы измените 00000-00-000 и нажмете выполнить, вы должны увидеть результат.

Ответ №1:

Ваша логика верна, но вы не определили конечную точку, поэтому она позволяет вставлять больше значений.

В вашем регулярном выражении он проверяет только, находятся ли 10 цифр в определенном порядке

попробуйте это

myRegExp = new RegExp(/^d{5}-d{2}-d{3}$/);

Комментарии:

1. Если он удовлетворяет вашему требованию, пожалуйста, примите ответ