2010-10-07 3 views
0

J'ai un champ de texte ont la valeur http://localhost/Send/test.php?s/?a=1&o=2. Trois autres zones de texte. Si nous entrons trois valeurs l'URL ci-dessus va changer comme http://localhost/Send/test.php?s/?a=1&o=2&s1=a&s2=b&s3=c. La valeur pour s1,s2 et s3 ne sauvera nulle part. Ma question est comment nous vérifions est la valeur pour s1 est déjà défini? Et comment puis-je mettre à jour la valeur de s1 si je change la valeur textbox s1alt textExpression régulière pour la correspondance d'URL

Répondre

0

Vous pouvez remplacer en utilisant cette regex

url.replace(/&s1=([^$]+|[^&]+)/i, "&s1=newvalue"); 
0

Je vous utilisez invité PCRE en PHP:

(?=(?P<ES1>.*&s1=)?)(?(ES1)RegexToMatchIfS1AlreadyExist|RegexToMatchIfS1NotExist) 

Donc

$result = preg_replace('/^(?=(?P<ES1>.*&s1=)?)(?(ES1)(?P<Left>.*&s1=)(?P<Right>.*+)$|RegexToMatchIfS1NotExist)/', '${1}newvalue${2}', ...); 
+0

Si vous n'avez pas besoin de prendre différentes actions sur lesquelles existe & s1 =, je pense que la réponse de @ BrunoLM est préférable. – Vantomex

+0

je dois vérifier est s1 existe ou pas –

0

utilisez ce se guérir l'expression régulière pour chaque langue ...

^(https?|ftp)\:\/\/([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)[email protected])?[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?\$ 
Questions connexes