0

My function should return true if the hexa number is valid using regular expressions note: hexadecimal numbers may contain a point(.) for decimals (example: 2E6.A3)

Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F

I gave examples on my 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'))
}
madpitbull
  • 15
  • 1
  • 9
  • What's the issue/problem/question? Also, your snippet doesn't do anything probably because you're not calling `main`. –  Mar 16 '16 at 17:46
  • See http://stackoverflow.com/questions/5055723/converting-hexadecimal-to-float-in-javascript. –  Mar 16 '16 at 17:52

1 Answers1

1

I made \. optional with \.? and the second [0-9A-Fa-f] take multiple characters by adding *.

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();

Shouldn't '10' return true? I switched the last test.

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

Jonathan.Brink
  • 23,757
  • 20
  • 73
  • 115