【问题标题】:Javascript hexadecimal number validation using regular expression使用正则表达式的 Javascript 十六进制数验证
【发布时间】:2016-07-02 18:21:43
【问题描述】:

如果十六进制数使用正则表达式有效,我的函数应该返回 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'))
}

【问题讨论】:

标签: javascript regex validation hex


【解决方案1】:

我将\.\.? 设为可选,第二个[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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2014-03-05
    • 2023-03-08
    • 2017-07-02
    • 2018-08-26
    • 1970-01-01
    相关资源
    最近更新 更多