js验证16进制和十进制
要验证一个字符串是否为16进制数字,可以使用正则表达式。同时,要验证是否为十进制数字,可以尝试将字符串转换为数字,并检查它是否在预期的范围内。
下面是一个函数,它接受一个字符串参数,并返回一个对象,指示该字符串是否为有效的16进制和十进制数字。
function validateHexAndDecimal(value) {
const isHex = /^[0-9a-fA-F]+$/.test(value);
const isDecimal = !isNaN(parseInt(value, 10)) && !isNaN(parseFloat(value));
return { isHex, isDecimal };
}
// 示例使用
const result1 = validateHexAndDecimal('123abc');
console.log(result1); // { isHex: true, isDecimal: true }
const result2 = validateHexAndDecimal('123abcZ');
console.log(result2); // { isHex: false, isDecimal: false }
const result3 = validateHexAndDecimal('123456789012345678901234567890');
console.log(result3); // { isHex: true, isDecimal: false }
const result4 = validateHexAndDecimal('123.45');
console.log(result4); // { isHex: false, isDecimal: true }
这个函数使用正则表达式/^[0-9a-fA-F]+$/
来检查字符串是否只包含16进制有效数字。然后,使用parseInt
和parseFloat
来尝试将字符串转换为十进制数字,并检查转换后的值是否为非NaN(非非数字)值。如果字符串既不是有效的16进制数字也不是有效的十进制数字,则isHex
和isDecimal
都将为false
。
评论已关闭