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). Как исправить?
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
num = Number(copyString.match(/\((.*)\)/)[1] || undefined)
if(!isNaN(num)) { console.log('это число!') }


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


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

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

Похожие вопросы