Количество символов в строке

Поддержка
  • Как можно посчитать количество симолов в переменной? Создал JS код:

    var text = 'lxzmtx'
    upper = text.match(/[A-Z]/g).length
    lower = text.match(/[a-z]/g).length
    nums = text.match(/[0-9]/g).length
    [[ALL_SYMBOL]] = upper + lower + nums
    

    Поток №1 : TypeError: Result of expression 'text.match(/[A-Z]/g)' [null] is not an object. во время выполнения действия 807978941

    Прогнал код в java скрипте макроса, всё выдал четко. В чем проблема?

  • @FastSpace

    Если регулярное выражение содержит флаг g, метод вернёт массив, содержащий все сопоставления. Если сопоставлений не было, метод вернёт значение null.

    А применением length к null вызывает ошибку

    TypeError: Result of expression 'text.match(/[A-Z]/g)' [null] is not an object.
    

    Если в исходной строке будет заглавные, прописные буквы и цифры, то скрипт сработает нормально.

    var text = 'lxzmtxQ1'
    upper = text.match(/[A-Z]/g).length
    lower = text.match(/[a-z]/g).length
    nums = text.match(/[0-9]/g).length
    [[ALL_SYMBOL]] = upper + lower + nums //вернёт 8
    

    Прогнал код в java скрипте макроса, всё выдал четко.

    Попробуй этот же скрипт в консоле браузера, будет такая же ошибка.

  • Есть проще способ

    var string = [[CAPTCHA1]];
    var result = string.length;
    [[ALL_SYMBOL]] = result;
    

    Кому может понадобиться.

  • @fastspace ну это понятно. Мы думали что тебе посимвольно нужно