javascript 中的百分比验证检查功能

Percentage validation check function in javascript

我想编写一个函数来检查数字是否为百分比。如果是这样,那么它应该 return 为真。以小数表示的百分比也应该 return 正确。

我希望它如何表现:

/* input value ... return value */
percentage_check("21%") == true
percentage_check("21") == true
percentage_check("0.21") == true
percentage_check(21) == true
percentage_check(0.21) == true

percentage_check(121) == false //i dont allow above 100%
percentage_check(1.21) == true
percentage_check("twenty") == false

这个函数应该怎么定义?

function percentage_check(n) {
 //code
}

function percentage_check(n) {
    return (('' + n).match(/^\d+\.?\d*%?$/) || false) && parseFloat(n) >= 0 && parseFloat(n) <= 100;
}

document.write(percentage_check("21%") + '<br>'); // == true
document.write(percentage_check("21") + '<br>'); // == true
document.write(percentage_check("0.21") + '<br>'); // == true
document.write(percentage_check(21) + '<br>'); // == true
document.write(percentage_check(0.21) + '<br>'); // == true
document.write(percentage_check(121) + '<br>'); // == false //i dont allow above 100%
document.write(percentage_check(1.21) + '<br>'); // == true
document.write(percentage_check("twenty") + '<br>'); // == false
document.write(percentage_check("21Eur") + '<br>'); // == false

这会起作用:

function percentage_check(n) {
 if(n.toString().match(/^\d+\.?\d?\d?%?$/) && parseFloat(n)<=100 && parseFloat(n)>=0){
    return true;
 }
 return false;
}

https://regex101.com/r/gN7pA8/1