[英]Regular expression for url matching
我有一個文本字段的值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=c
。 s1,s2
和s3
的值不會保存在任何地方。 我的問題是我們如何檢查s1
的值是否已經設置? 如果我更改了s1
的文本框值,我如何更新s1
的值
您可以使用此正則表達式替換
url.replace(/&s1=([^$]+|[^&]+)/i, "&s1=newvalue");
我來賓您在 PHP 中使用 PCRE:
(?=(?P<ES1>.*&s1=)?)(?(ES1)RegexToMatchIfS1AlreadyExist|RegexToMatchIfS1NotExist)
所以
$result = preg_replace('/^(?=(?P<ES1>.*&s1=)?)(?(ES1)(?P<Left>.*&s1=)(?P<Right>.*+)$|RegexToMatchIfS1NotExist)/', '${1}newvalue${2}', ...);
對每種語言使用這個安全的正則表達式......
^(https?|ftp)\:\/\/([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?\$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.