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'))
}

2
  • What's the issue/problem/question? Also, your snippet doesn't do anything probably because you're not calling main. Commented Mar 16, 2016 at 17:46
  • See stackoverflow.com/questions/5055723/…. Commented Mar 16, 2016 at 17:52

1 Answer 1

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

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.