Im using replace()
to filter phone numbers, but is it possible to leave a +
if its at the beginning and remove all subsequent non-numeric values? I just want to create mask for mobile.
My example:
const maskPhone = (value, code) => {
return value
.replace(/\D/g, "")
.replace(/(\d{4})(\d)/, "($1) $2")
.replace(/(\d{5})(\d)/, "$1-$2")
.replace(/(-\d{4})(\d+?)$/, "$1");
};
maskPhone(++32332+323232)
Expected result:
+(323) 32 323 232
So only one +
is allowed at the start but for now it's allowed only numbers
Second question, how to pass value dynamically to this regexp?
Like this:
const maskPhone = (value, code) => {
return value
.replace(/\D/g, "")
.replace(/(\d{code})(\d)/, "($1) $2")
.replace(/(\d{5})(\d)/, "$1-$2")
.replace(/(-\d{4})(\d+?)$/, "$1");
};