Почему / ^ [a-zA-Z0-9 _] + $ / и / ^ [a-zA-Z0-9 _] {1,} $ / принимает пустую строку - PullRequest
0 голосов
/ 01 декабря 2018

Я пишу веб-приложение Nuxt, и я столкнулся с какой-то странной вещью.

export default {
    name: 'post',
    validate({ params }) {
        return /^[a-zA-Z0-9_]+$/.test(params.postname)
    }
}

Это принимает "пустую строку", даже не должно.Если он не принимает пустую строку, страница ошибки 404 должна отображаться, но это не так.

export default {
    name: 'post',
    validate({ params }) {
        return /^[a-zA-Z0-9_]{1,}$/.test(params.postname)
    }
}

Это также верно.Насколько я знаю, + и {1,} идентичны.Почему + и {1,} принимают пустую строку?

1 Ответ

0 голосов
/ 01 декабря 2018

Метод test() возвращает true, если строка не определена.Так что используйте:

return params.postname !== undefined && /^[a-zA-Z0-9_]+$/.test(params.postname);
...