Tengo un escenario que necesita Reemplazar una cadena de 2 maneras
Entrada: Parámetros-->cadena, AnnotationName, entrada
Caso 1: And I should input <i>Annotaion</i> as <b>input</b>
Producción :
{ displayData: `And I should input <i> ${annotationName}</i> as <b>${userInput}</b>`, requestData: `And I should input '${annotationName}' as '${userInput}'`
}
Estoy tratando de mostrar la propiedad de datos en el violín pero no puedo lograrlo como se esperaba. ¿Alguien puede ayudar con esto?
function rePlaceString (data, annotationName, userInput) { const startBtagIndex = data.indexOf('<b>'); const endBtagIndex = data.indexOf('</b>'); const startItagIndex = data.indexOf('<i>'); const endItagindex = data.indexOf('</i>'); let replaceString = ''; if ((startBtagIndex > 0 && endBtagIndex > 0) && (startItagIndex > 0 && endItagindex >0)) { replaceString = data.substring(0, startItagIndex) + userInput + data.substr(endItagindex, data.length); replaceString = replaceString.substring(0, startBtagIndex) + annotationName + replaceString.substr(endItagindex, data.length) } else if (startBtagIndex > 0 && endBtagIndex > 0) { replaceString = replaceString.substring(0, startBtagIndex) + annotationName + replaceString.substr(endItagindex, data.length) } else if (startItagIndex > 0 && endItagindex >0) { replaceString = data.substring(0, startItagIndex) + userInput + data.substr(endItagindex, data.length); } // expected Result return {displayData: replaceString, requestData: `And I should input '${annotationName}' as '${userInput}'`}; } console.log(rePlaceString(`And I should input <i>Annotaion</i> as <b>inoutUserName</b>`, 'UserName', 'Admin'), '***********')
https://jsfiddle.net/soumyagangamwar/n3zrhqj8/6/ Más detalles
Gracias de antemano
He reelaborado un poco tu función.
function rePlaceString (data, annotationName, userInput) { let replaceString = data; const startBtagIndex = data.indexOf('<b>'); const endBtagIndex = data.indexOf('</b>'); if (startBtagIndex > 0 && endBtagIndex > 0 && startBtagIndex < endBtagIndex) { let first = replaceString.substring(0, startBtagIndex); let last = replaceString.substring(endBtagIndex+4, data.length); replaceString = first + annotationName + last; } const startItagIndex = replaceString.indexOf('<i>'); const endItagindex = replaceString.indexOf('</i>'); if (startItagIndex > 0 && endItagindex > 0 && startItagIndex < endItagindex) { let first = replaceString.substring(0, startItagIndex); let last = replaceString.substring(endItagindex+4, replaceString.length); replaceString = first + userInput + last; } // expected Result return {displayData: replaceString, requestData: `And I should input '${annotationName}' as '${userInput}'`};