恩.我懒得打字说明凯哥的那个"$pattern='/^(https?|ftps?):\/\/([a-zA-Z0-9-]+\.){1,5} (com|cn|net|org|edu|vc|la|gov|us|eu|cc|cm|hk|tw|tk)\/?(\/?index.php)? (\??(\w+=\S+&?)+)?/';"正
则表达式有什么不足.
你去测试就知道哪里不太好.
我拿我代码说话:
- <form>
- <input type="text" name="data" />
- <input type="submit" name="sub" value="匹配" />
- </form>
- <?php
- function dump($array){
- echo '<pre>';
- print_r($array);
- echo '</pre>';
- }
- $data=$_GET['data'];
- $sub=$_GET['sub'];
- if(isset($sub)){
- //这个正则稍微改了下凯哥的代码.我的核心匹配辅助条件按是第二层if...else开始的代码.
- $pat='/^((http|https|ftp|ftps):\/\/)?([a-zA-Z0-9-]+\.){1,5}(com|cn|net|org|hk|tw)(\/(\w|-)+\.([a-zA-Z]+))(\??(\w+=\S+&?)+)?$/';
- if(preg_match($pat,$data,$gaga)==0){
- $pat1='/^((http|https|ftp|ftps):\/\/)?([a-zA-Z0-9-]+\.){1,5}(com|cn|net|org|hk|tw)$/';
- if(preg_match($pat1,$data,$gaga1)){
- echo '<font color="green">"'.$data.'" 与 "'.$pat.'" 匹配成功</font>';
- echo '<br>结果:';
- dump($gaga1);
- }else{
- echo '<font color="red">'.$data.'与'.$pat1.'匹配失败<font>';
- echo '<br>结果:';
- dump($gaga1);
- }
- }elseif(preg_match($pat,$data,$gaga)){
- echo '<font color="green">"'.$data.'" 与 "'.$pat.'" 匹配成功</font>';
- echo '<br>结果:';
- dump($gaga);
- }
- }
- ?>
你要是略看的这段代码.那么我就不用解释了.你要是认真看的,我更不用解释.大家都懂的.本代码还有些不足的.欢迎改进
声明:我仅仅是共享思维.说我炫耀的人!打断他的腿!此代码段,和杨森讨论了下并写了出来....................