To check if a string is a valid SHA256 hash in JavaScript, we can use a regex expression to match for the 64 consecutive hexadecimal digits which are characters from a-f
and numbers from 0-9
.
TL;DR
// Regular expression to check if string is a SHA256 hash
const regexExp = /^[a-f0-9]{64}$/gi;
// String with SHA256 hash
const str = "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad";
regexExp.test(str); // true
This is the regex expression for matching almost all the test cases for a valid SHA256 hash in JavaScript.
// Regular expression to check if string is a SHA256 hash
const regexExp = /^[a-f0-9]{64}$/gi;
This will match all the 64 hexadecimal digits which have characters in the range from a
till f
and numbers from 0
till 9
.
Now let's write a string with SHA256 hash like this,
// Regular expression to check if string is a SHA256 hash
const regexExp = /^[a-f0-9]{64}$/gi;
// String with SHA256 hash
const str = "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad";
Now to test the string, we can use the test()
method available in the regular expression we defined. It can be done like this,
// Regular expression to check if string is a SHA256 hash
const regexExp = /^[a-f0-9]{64}$/gi;
// String with SHA256 hash
const str = "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad";
regexExp.test(str); // true
- The
test()
method will accept astring
type as an argument to test for a match. - The method will return boolean
true
if there is a match using the regular expression andfalse
if not.
See the above example live in JSBin.
If you want this as a utility function which you can reuse, here it is,
/* Check if string is a valid SHA256 Hash */
function checkIfValidSHA256(str) {
// Regular expression to check if string is a SHA256 hash
const regexExp = /^[a-f0-9]{64}$/gi;
return regexExp.test(str);
}
// Use the function
checkIfValidSHA256(
"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
); // true
checkIfValidSHA256("hello98123!"); // false
That's all! 😃