[英]how to check whether a var is string or number using javascript
我有一個變量var number="1234"
,雖然數字是一個數值,但它在""
之間,所以當我使用typeof
或NaN
檢查它時,我把它作為一個字符串。
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.