Treemscapes
@Treemscapes
Просто программист

Как найти и определить число в строке?

Здравствуйте.

У меня не работает определение числа у Value.
Данные считываются с файла test.jem, передаются в файл lexems.js и у того, что в скобочках, определяется формат.

(test.jem)
print(56); // Число
print(hello); // Чтобы проверялась ошибка
print("hello world"); // Строка
print( ); // Пустое значение


А это то, в чём определяется формат строки:
(lexems.js)
if (/print \((.*)\)/gim.test(copyString)) { // Находим что если скобочки без кавычек это число
    let num = copyString.replace(/print \((.*)\)/gim, '$1'); // Убираем принт и скобочки
    if ((typeof num) === 'string') { // Определение TypeError
        stringObject["TypeError"] = num;
        console.log(`TypeError: ${num} is not a Number. ${num} is String`);
    }
}


(Выводит, что 56 (не строка) это строка (string). Как исправить?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
num = Number(copyString.match(/\((.*)\)/)[1] || undefined)
if(!isNaN(num)) { console.log('это число!') }


copyString = 'print ("hello world"); //строка'
// undefined
copyString = 'print (56); '
// это число!


только надо отдельно придумать, print("56") это число или строка?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
22 мая 2024, в 07:09
50000 руб./за проект
22 мая 2024, в 02:15
10000 руб./за проект