Как выбрать целое число перед знаком «+» в JavaScript - PullRequest
1 голос
/ 05 января 2020

Я сейчас работаю над калькулятором и по определенным причинам (долгая история) я не хочу использовать функцию eval.

, поэтому я хочу сделать

var exp = document.form.textview.value; 
//everything on the calc is displayed in a form
var a = intiger up until the + sign

Теперь я понятия не имею, как это сделать, я пытался сделать

var a = exp.charAt(0)

, но это просто дает мне первый символ, что, если число 2 цифры.

вся помощь ценим и спасибо за чтение хорошего дня, larwa

Ответы [ 2 ]

1 голос
/ 05 января 2020

Итак, насколько я понимаю, вы пытаетесь найти все символы вплоть до знака +. В примере 12324+ вы хотите вернуть 12324?

Поэтому я бы использовал метод "split" на string.


var value = "12324+";
var number = value.split('+')[0];

Это разделит строку на массив и вернет первый индекс (число) в числовую переменную

0 голосов
/ 05 января 2020

Распознайте целое число в начале вашей входной строки:

JS 'parseInt Функция делает то, что вы хотите, например, используя ваши имена переменных:

var a = parseInt(exp);

Рабочий пример смотрите здесь:

$(function(){
  $('#inp').keyup(function(ev){
    const val = $(ev.target).val();

    // this is the important part:
    const int = parseInt(val);

    console.log(int);
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="inp" />
<h3>value:</h3>
<div id="out">
</div>

Распознавание всех целых чисел во входной строке

Чтобы получить все вхождения целых чисел во входной строке, вы можете использовать

var a = exp.match(/-?\d+/g).map(s => parseInt(s))

, который вернет массив всех отдельных целых чисел. Рабочий пример:

$(function(){
  $('#inp').keyup(function(ev){
    const val = $(ev.target).val();

    // this is the important part:
    const matches = val.match(/-?\d+/g).map(s => parseInt(s));

    console.log(matches);
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="inp" />
<h3>value:</h3>
<div id="out">
</div>
...