js 判斷字符串是否全是數字

1.可能也有小數點

var test = ['123.12', '.123', '123.', '123a'];
var reg = /^[\d|\.]*$/;
test.forEach((v) => {
  console.log(v, reg.test(v));
});

2. 除了正則,isNaN或許更好

var test = ['123.12', '.123', '123.', '123a', '1e+43'];

test.forEach((v) => {
  console.log(v, !isNaN(v));
});

 不要直接使用 isNaN()

function isNumber(value) {
  return !Number.isNaN(Number(value))
}

 3.對於給定的的各種類型的數字表示(主要包含整數、小數、科學計數以及對應的正負數表示)

var numbers = [
    123, +123, -123,
    '123', '+123', '-123',
    123.4, +123.4, -123.4,
    '123.4', '+123.4', '-123.4',
    123., +123., -123.,
    '123.', '+123.', '-123.',
    .123,, +.123, -.123,
    '.123', '+.123', '-.123',
    1.23e+20, +1.23e+20, -1.23e+20,
    '1.23e+20', '+1.23e+20', '-1.23e+20',
    '123.4.5',
    '123abc456',
    undefined
];

 3.1、使用!isNaN來進行判定。

numbers.forEach((v) => {
  console.log(typeof(v), "\t", v, "\t", !isNaN(v));
});

 結果:

number      123      true
number      123      true
number      -123      true
string      123      true
string      +123      true
string      -123      true
number      123.4      true
number      123.4      true
number      -123.4      true
string      123.4      true
string      +123.4      true
string      -123.4      true
number      123      true
number      123      true
number      -123      true
string      123.      true
string      +123.      true
string      -123.      true
number      0.123      true
number      0.123      true
number      -0.123      true
string      .123      true
string      +.123      true
string      -.123      true
number      123000000000000000000      true
number      123000000000000000000      true
number      -123000000000000000000      true
string      1.23e+20      true
string      +1.23e+20      true
string      -1.23e+20      true
string      123.4.5      false
string      123abc456      false
undefined      undefined      false

3.2、使用正則表達式來進行判定:整數,不帶符號

var reg = /^[\d]+$/;
numbers.forEach((v) => {
  console.log(typeof(v), "\t", v, "\t", reg.test(v));
});

結果如下:

number      123      true
number      123      true
number      -123      false
string      123      true
string      +123      false
string      -123      false
number      123.4      false
number      123.4      false
number      -123.4      false
string      123.4      false
string      +123.4      false
string      -123.4      false
number      123      true
number      123      true
number      -123      false
string      123.      false
string      +123.      false
string      -123.      false
number      0.123      false
number      0.123      false
number      -0.123      false
string      .123      false
string      +.123      false
string      -.123      false
number      123000000000000000000      true
number      123000000000000000000      true
number      -123000000000000000000      false
string      1.23e+20      false
string      +1.23e+20      false
string      -1.23e+20      false
string      123.4.5      false
string      123abc456      false
undefined      undefined      false

3.3、使用正則表達式來進行判定:整數 + 小數 + 科學計數,帶符號

var reg = /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/;
numbers.forEach((v) => {
  console.log(typeof(v), "\t", v, "\t", reg.test(v));
});

結果如下:

number      123      true
number      123      true
number      -123      true
string      123      true
string      +123      true
string      -123      true
number      123.4      true
number      123.4      true
number      -123.4      true
string      123.4      true
string      +123.4      true
string      -123.4      true
number      123      true
number      123      true
number      -123      true
string      123.      true
string      +123.      true
string      -123.      true
number      0.123      true
number      0.123      true
number      -0.123      true
string      .123      true
string      +.123      true
string      -.123      true
number      123000000000000000000      true
number      123000000000000000000      true
number      -123000000000000000000      true
string      1.23e+20      true
string      +1.23e+20      true
string      -1.23e+20      true
string      123.4.5      false
string      123abc456      false
undefined      undefined      false

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章