«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему JavaScript RegEx не проверяет входные данные?

Почему JavaScript RegEx не проверяет входные данные?

Опубликовано 3 ноября 2024 г.
Просматривать:137

Why is JavaScript RegEx Failing to Validate Inputs?

Борьба с функциональностью регулярных выражений в Javascript: пример из статьи «Регулярное выражение не работает»

В контексте запроса, упомянутого в заголовке: «Регулярное выражение Javascript не работает» , пользователь столкнулся с проблемой, из-за которой регулярное выражение (regEx) постоянно возвращало значение false, независимо от входного значения. Фрагмент кода, предоставленный в запросе, выглядит следующим образом:

function checkLegalYear() {
    var val = "02/2010"; 

    if (val != '') {
        var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

        if (regEx.test(val)) {
            //do something
        }
        else {
            //do something
        }
    }
}

Пользователь попытался проверить введенные данные о году с помощью регулярного выражения и получил неожиданные результаты. Несмотря на тестирование этого кода в нескольких онлайн-редакторах, RegEx продолжал возвращать false.

Решение проблемы:

Корень проблемы заключается в методе, используемом для создания объект RegEx. При определении RegEx из строки символы обратной косой черты должны быть удвоены, чтобы предотвратить неправильную интерпретацию во время процесса анализа. Чтобы исправить это, следует использовать следующий код:

var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");

В качестве альтернативы рекомендуется использовать синтаксис RegEx напрямую, что исключает необходимость удвоения обратной косой черты:

var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;

Благодаря реализации этих изменений RegEx теперь должен функционировать должным образом, проверяя входные данные года и предоставляя точные данные. результаты.

Заявление о выпуске Эта статья перепечатана по адресу: 1729229298. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3