Подтвердить что ты не робот

Генерировать 4-значное случайное число, используя подстроку

Я пытаюсь выполнить код ниже:

var a = Math.floor(100000 + Math.random() * 900000);
a = a.substring(-2);

Я получаю ошибку, как undefined is not a function в строке 2, но когда я пытаюсь сделать alert(a), у нее есть что-то. Что здесь не так?

4b9b3361

Ответ 1

Это потому, что a - это число, а не строка. Что вы, вероятно, захотите сделать, это примерно так:

var val = Math.floor(1000 + Math.random() * 9000);
console.log(val);

Ответ 2

Это приведет к созданию 4-значного случайного числа (0000-9999) с использованием подстроки:

var seq = (Math.floor(Math.random() * 10000) + 10000).toString().substring(1);
console.log(seq);

Ответ 3

$( document ).ready(function() {
  
    var a = Math.floor(100000 + Math.random() * 900000);   
    a = String(a);
    a = a.substring(0,4);
    alert( "valor:" +a );
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

Ответ 4

Ваш a - это номер. Чтобы иметь возможность использовать функцию substring, сначала она должна быть string, попробуйте

var a = (Math.floor(100000 + Math.random() * 900000)).toString();
a = a.substring(-2);

Ответ 5

Вы можете получить 4-значный номер .substring(startIndex, length), который будет в вашем случае .substring(0, 4). Чтобы иметь возможность использовать .substring(), вам нужно преобразовать a в строку с помощью .toString(). В конце вы можете преобразовать полученный результат в целое число с помощью parseInt:

 var a = Math.floor(100000 + Math.random() * 900000)
 a = a.toString().substring(0, 4);

 a =  parseInt(a);

 alert(a);

https://jsfiddle.net/v7dswkjf/

Ответ 6

Проблема заключается в том, что a является числом. Вы не можете применить substring к числу, поэтому вам нужно преобразовать число в строку, а затем применить функцию.

DEMO: https://jsfiddle.net/L0dba54m/

var a = Math.floor(100000 + Math.random() * 900000);
a = a.toString();
a = a.substring(-2);

Ответ 7

$(document).ready(function() {
  var a = Math.floor((Math.random() * 9999) + 999);
  a = String(a);
  a = a.substring(0, 4);
});

Ответ 8

// It Will Generate Random 5 digit Number & Char 
const char = '1234567890abcdefghijklmnopqrstuvwxyz'; //Random Generate Every Time From This Given Char
const length = 5;
let randomvalue = '';
for ( let i = 0; i < length; i++) {

    const value = Math.floor(Math.random() * char.length);

    randomvalue += char.substring(value, value + 1).toUpperCase();

}

console.log(randomvalue);