Cómo reemplazar caracteres especiales por diferentes patrones de la misma cadena en javascript
estoy pasando una cadena a la vez y debajo hay patrones de cadena
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 2456Puede haber una solución inteligente, pero esto debería funcionar:
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; } Estoy usando un grupo de captura (expresión entre paréntesis en la expresión regular) al que se puede hacer referencia en el segundo parámetro de la función de replace con $1 (1 porque es el primer grupo de captura). el ? en cambio, señale que el carácter es opcional.