Я пытаюсь выполнить код ниже:
var a = Math.floor(100000 + Math.random() * 900000);
a = a.substring(-2);
Я получаю ошибку, как undefined is not a function
в строке 2, но когда я пытаюсь сделать alert(a)
, у нее есть что-то. Что здесь не так?
Я пытаюсь выполнить код ниже:
var a = Math.floor(100000 + Math.random() * 900000);
a = a.substring(-2);
Я получаю ошибку, как undefined is not a function
в строке 2, но когда я пытаюсь сделать alert(a)
, у нее есть что-то. Что здесь не так?
Это потому, что a
- это число, а не строка. Что вы, вероятно, захотите сделать, это примерно так:
var val = Math.floor(1000 + Math.random() * 9000);
console.log(val);
Это приведет к созданию 4-значного случайного числа (0000-9999) с использованием подстроки:
var seq = (Math.floor(Math.random() * 10000) + 10000).toString().substring(1);
console.log(seq);
$( 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>
Ваш a
- это номер. Чтобы иметь возможность использовать функцию substring
, сначала она должна быть string
, попробуйте
var a = (Math.floor(100000 + Math.random() * 900000)).toString();
a = a.substring(-2);
Вы можете получить 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);
Проблема заключается в том, что a
является числом. Вы не можете применить substring
к числу, поэтому вам нужно преобразовать число в строку, а затем применить функцию.
DEMO: https://jsfiddle.net/L0dba54m/
var a = Math.floor(100000 + Math.random() * 900000);
a = a.toString();
a = a.substring(-2);
$(document).ready(function() {
var a = Math.floor((Math.random() * 9999) + 999);
a = String(a);
a = a.substring(0, 4);
});
// 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);