簡體   English   中英

如何使用 javascript 檢查 var 是字符串還是數字

[英]how to check whether a var is string or number using javascript

我有一個變量var number="1234" ,雖然數字是一個數值,但它在""之間,所以當我使用typeofNaN檢查它時,我把它作為一個字符串。

function test()
{
    var number="1234"

if(typeof(number)=="string")
{
    alert("string");
}
if(typeof(number)=="number")
{
    alert("number");
}

}

我總是alert("string") ,你能告訴我如何檢查這是否是一個數字?

據我了解您的問題,您要求進行測試以檢測字符串是否代表數值。

應該進行快速測試

function test() {
   var number="1234"
   return (number==Number(number))?"number":"string"
}

作為數字,如果在沒有new關鍵字的情況下調用,則將字符串轉換為數字。 如果變量內容未被觸及( ==會將數值轉換為字符串),則您正在處理一個數字。 否則它是一個字符串。

function isNumeric(value) {
   return (value==Number(value))?"number":"string"
}

/* tests evaluating true */
console.log(isNumeric("1234"));  //integer
console.log(isNumeric("1.234")); // float
console.log(isNumeric("12.34e+1")); // scientific notation
console.log(isNumeric(12));     // Integer
console.log(isNumeric(12.7));   // Float
console.log(isNumeric("0x12")); // hex number

/* tests evaluating false */
console.log(isNumeric("1234e"));
console.log(isNumeric("1,234"));
console.log(isNumeric("12.34b+1"));
console.log(isNumeric("x"));

 var number = "1234";

創建一個值為“1234”的新字符串 object。 通過將值放在引號中,您說它是一個字符串。

如果要檢查字符串是否只包含數字,可以使用正則表達式

if (number.match(/^-?\d+$/)) {
    alert("It's a whole number!");
} else if (number.match(/^-?\d+*\.\d+$/)) {
    alert("It's a decimal number!");
}

模式/^\d+$/意味着:在字符串的開頭 ( ^ ),有一個可選的減號 ( -? ),然后是一個數字 ( \d ),然后是更多的數字 ( + ),然后字符串的結尾 ( $ )。 另一種模式只是在數字組之間尋找一個點。

因為var number="1234"是一個字符串。 雙引號使其成為文字。

如果你想要一個數字,像這樣使用它

var number = 1234;

更新:

例如,如果您從輸入標簽中獲取輸入,則 dataType 將為字符串,如果要將其轉換為數字,可以使用 parseInt() function

var number = "1234";

var newNumber = parseInt(number);

alert(typeof newNumber); // will result in string

將其轉換為數字,然后將其與原始字符串進行比較。

if ( parseFloat(the_string,10) == the_string ) {
    // It is a string containing a number (and only a number)
}

另一種簡單的方法:

var num_value = +value;
if(value !== '' && !isNaN(num_value)) {
    // the string contains (is) a number
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM