使用正则表达式的Javascript十六进制数验证

时间:2016-03-16 17:37:40

标签: javascript regex validation hex

如果使用正则表达式将六进制数有效,则我的函数应返回true 注意:十六进制数字可能包含小数点(。)(例如:2E6.A3)

十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F

我在main()上提供了示例

function returnHexaNumber(string) {
    var regExp = /^[-+]?[0-9A-Fa-f]+\.[0-9A-Fa-f]?$/
    return (isAString(string) && regExp.test(string))
}
function main() {
    alert("true : " + returnHexaNumber('2E6'))
    alert("true : " + returnHexaNumber('2E6.A3'))
    alert("false : " + returnHexaNumber('ZZZ'))
    alert("false : " + returnHexaNumber(''))
    alert("false : " + returnHexaNumber(0))
    alert("false : " + returnHexaNumber('10'))
}

1 个答案:

答案 0 :(得分:0)

我通过\.选择了\.?,第二个[0-9A-Fa-f]通过添加*获得了多个字符。

function returnHexaNumber(s) {
    var regExp = /^[-+]?[0-9A-Fa-f]+\.?[0-9A-Fa-f]*?$/;
    return (typeof s === 'string' && regExp.test(s));
}
function main() {
    console.log("true : " + returnHexaNumber('2E6'));
    console.log("true : " + returnHexaNumber('2E6.A3'));
    console.log("false : " + returnHexaNumber('ZZZ'));
    console.log("false : " + returnHexaNumber(''));
    console.log("false : " + returnHexaNumber(0));
    console.log("true : " + returnHexaNumber('10'));
}

main();

不应该'10'返回true吗?我改变了最后一次测试。

JSBin:http://jsbin.com/veyusokowu/edit?js,console