Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!