I have an input string that looks like any of the following:
Basically the string can contain alphabet characters or digits. However it cannot contain symbols, just letters and numbers. I would like to mask it so that it looks like this:
I've looked everywhere to find an java code example that uses regex to mask this. I've found this post on stack but that assumes that the input is purely a number.
I adjusted the regex to /\w(?=\w{4})/g
to include characters as well. It seems to work here. But when I try to implement it in java it doesn't work. Here's the line in my java code:
String mask = accountNumber.replace("\\w(?=\\w{4})", "*");
The mask ends up being the same as the accountNumber. So obviously the regex is not working. Any thoughts?
To extract last n characters, simply print (length-n)th character to nth character using the charAt() method.
We use some inbuilt JavaScript function slice to slice our given string here we write slice(0,-n) where -n will skip the last n character of the string. Then we use replace function to replace the character with a specified mask. Replace all characters we use regex /./g where '.
For example, to get last two characters of a string, using method substring(input. length() - 2) .
For checking if a string consists only of alphanumerics using module regular expression or regex, we can call the re. match(regex, string) using the regex: "^[a-zA-Z0-9]+$". re. match returns an object, to check if it exists or not, we need to convert it to a boolean using bool().
You're using replace, which doesn't use regular expressions.
Try replaceAll.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With