2010-10-07 154 views
0

我有一個文本字段的值爲http://localhost/Send/test.php?s/?a=1&o=2。另有三個文本框。如果我們輸入三個值,上面的url將會改變,如http://localhost/Send/test.php?s/?a=1&o=2&s1=a&s2=b&s3=cs1,s2s3的值不會保存在任何地方。我的問題是我們如何檢查是否已設置s1的值?我怎麼可以更新s1價值,如果我更改s1alt texturl匹配的正則表達式

回答

0

的文本框的值可以替換使用此正則表達式

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

我的客人,您在PHP中使用PCRE:

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

所以

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

如果您不需要採取與&s1 =存在與否的不同行動,我認爲@BrunoLM的回答是首選。 – Vantomex 2010-10-07 11:20:03

+0

我需要檢查是否存在s1 – 2010-10-07 12:29:56

0

使用此se治癒每種語言的正則表達式...

^(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+\$_.-]*)?\$