Tengo una cadena de URL, donde quiero insertar una cadena y unirla nuevamente. Puedo agregar los dos primeros conjuntos de cadenas, pero no puedo agregar el último grupo
let string = 'http://stackoverflow.com/questions/1/replace-text' .replace(/(\/\/[^\/]+)?\/.*/, '$1/testing/$2'); console.log(string)Aquí quiero adjuntar la parte restante después de la primera barra que debería ser de $2 pero no puedo lograrlo. ¿Cómo puedo lograr esto? ¿Cuál es mi resultado esperado?
http://stackoverflow.com/testing/questions/1/replace-textNo es necesario que coincida con el resto de la URL. Simplemente haga coincidir la pieza que desea reemplazar y el resto se mantendrá en el reemplazo.
let string = 'http://stackoverflow.com/questions/1/replace-text' .replace(/\/\/[^\/]+/, '$&/testing'); console.log(string)Puede usar la búsqueda anticipada para insertar en la cadena sin eliminar nada:
(?<!:|\/)(?=\/)|$
(?<!:\/) es una mirada negativa hacia atrás para ignorar el encabezado del protocolo (://)(?=\/) es una búsqueda anticipada positiva que busca una sola barra$ representa una cadena sin una barra al final const regex = /(?<!:|\/)(?=\/)|$/; const testString = 'http://stackoverflow.com/questions/1/replace-text'; console.log(testString.replace(regex, '/testing'))No es una solución muy elegante, pero funciona.
let string = 'http://stackoverflow.com/questions/1/replace-text' // http://stackoverflow.com/testing/questions/1/replace-text let parts = string.split("/") let newString = parts[0] + "//"+ parts[2] + "/testing/" + parts[3] +"/" + parts[4] + "/" + parts[5] console.log( newString , "newString" )