How to replace special characters for different pattern of same string in javascript
am passing one string at a time and below are string patterns
var str1="2456 #02-567"
var result = str1.replace(/#/g, '')
var str1="2-567 2456"
var result = str1.replace(/^/g, '0')
for these strings
2456 #02-567 , 2456 02-567, 2456 2-567,2456 #2-567
Expected Output
2456 02-567
===========
for these strings
#02-567 2456 , 2-567 2456, 02-567 2456, #2-567 2456
Expected Output
02-567 2456
May be there is a clever solution, but this should work:
let str = ["2456 #02-567" , "2456 02-567", "2456 2-567","2456 #2-567","#02-567 2456" , "2-567 2456", "02-567 2456", "#2-567 2456","1234 12-345","1234 #12-345","#12-345 1234"];
//1234 12-345" or "1234 #12-345" or "#12-345 1234"
for(let st of str)
console.log(st.replace(/#?(\d)?(\d-)/g ,replacer))
function replacer(match, p1, p2, offset, string){
let replaceSubString = p1 || "0";
replaceSubString += p2;
return replaceSubString;
}
I'm using a captouring group (expression in the parenthesis in the regular expression) that can be referenced in the second parameter of replace function with $1 (1 because is the first captouring group). The ? instead point that the character is optional.