Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
Reemplace el valor de la variable en el archivo JS usando Regex en php

Quiero cambiar el valor de una variable en el archivo js usando php, lo que intenté hasta ahora es obtener el contenido del archivo e intentar encontrar una fórmula de expresión regular robusta para cambiar el valor de la variable:

aquí está el contenido del archivo js, teniendo en cuenta que el valor puede ser cualquier valor entre = y ;

 // blah blah blah const filename = ""; // it can be filename = ''; or filename = null; or filename = undefined; and so on // blah blah blah

Traté de obtener esa línea exacta usando esto: preg_match

 /(((\bconst\b)+\s*(\bfilename\b)+\s*)+\s*=)[^\n]*/is

luego reemplazó el valor usando esto: preg_replace

 /([\"\'])(?:(?=(\\?))\2.)*?\1/is // to get what is between "" or /(?<=\=)(.*?)(?=\;)/is // to get what is between = & ;

luego reemplazó toda la línea nuevamente en el archivo usando la primera fórmula: preg_replace

 /(((\bconst\b)+\s*(\bfilename\b)+\s*)+\s*=)[^\n]*/is

¡Estoy preguntando si tienen un mejor enfoque, porque siento que esto es demasiado trabajo y no estoy seguro de la elegancia y el rendimiento de lo que hice hasta ahora!

NOTA: es un archivo de configuración acumulativo y obtendrá el nombre del archivo del paquete del controlador/método del método php actual >> es un escenario específico.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puedes usar

 preg_replace('~^(\h*const\s+filename\s*=\s*).+~mi', '$1"NEW VALUE";', $string)

Vea la demostración de expresiones regulares . Detalles :

  • ^ - inicio de línea (debido a la bandera m )
  • (\h*const\s+filename\s*=\s*) - Grupo 1: cero o más espacios en blanco horizontales ( \h* ), const , uno o más espacios en blanco ( \s+ ), filename , = que se incluye con cero o más espacios en blanco ( \s*=\s* )
  • .+ - uno o más caracteres que no sean de salto de línea tantos como sea posible.

El reemplazo contiene $1 , la referencia inversa de reemplazo que inserta el contenido del Grupo 1 en la cadena resultante.

Vea la demostración de PHP :

 $string = "// blah blah blah\n\nconst filename = \"\";\n\n// blah blah blah"; echo preg_replace('~^(\h*const\s+filename\s*=\s*).+~mi', '$1"NEW VALUE";', $string);

Producción:

 // blah blah blah const filename = "NEW VALUE"; // blah blah blah
about 4 years ago · Juan Pablo Isaza Relatório

0

Vale, no sé si he entendido bien lo que quieres decir o no, pero aquí he intentado responder a tu pregunta.

Entonces, desea cambiar el valor almacenado en const filename = ""; usando php.

Así es como se ve su archivo javascript:

 // blah blah blah const filename = ""; // blah blah blah

Ahora, tenemos que obtener el valor almacenado en const filename . Entonces, nuestro php debería verse así:

 $newFilename = 'this_will_replace_the_value_in_const_filename'; $replace = get_file_contents('path_to_the_js_file'); $replaced = preg_replace('/\s*const\s+filename\s*=\s*\"(.*)\"\s*\;/', "const filename = '$newFilename';", $replace)

Ahora la nueva cadena que tiene el valor manipulado de const filename se almacena en $replaced . Puede imprimirlo usando echo, como se muestra a continuación:

 //php echo $replaced;

Producción:

 // blah blah blah const filename = 'this_will_replace_the_value_in_const_filename'; // blah blah blah
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda