PHP 正则匹配字符串URL地址与域名代码

 更新时间:2016年11月25日 17:42  点击:1599
有时我们需要过滤用户提交的字符串的一些垃圾数据,下面我来给大家介绍利用PHP 正则匹配字符串URL地址与域名代码,有需要了解的朋友可进入参考参考。

匹配域名有以下的格式要求:

1、域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。

2、各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。

3、由多个标号组成的完整域名总共不超过255个字符。

 
所以匹配域名的正则要

1、由英文数字 和 “_”组成    [-a-z0-9]

2、每级要以“.”连接

3、三级不能域名长度不超过20 {1,20}

 
测试如下格式:

 代码如下 复制代码
<?php
$url = 'www.111cn.net';
$search = '/---正则N---/';
if(preg_match($search,$url)){
 echo '匹配';
}else {
 echo '不匹配';
}
?>

 

先从网上总结的几个常见的

正则1

b([a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}b

错误匹配:长度>60

 

正则2

 代码如下 复制代码

^(([^-][a-z0-9A-Z-_]+.)*)[^-][a-z0-9A-Z-_]+(.[a-zA-Z]{2,4}){1,2}$

错误匹配:长度>60

错误匹配:www.te_st.com

 

正则3

 代码如下 复制代码

(([wd-_]+.):?[^-_])+w{2,4}

不匹配:www.111cn.net.cn

错误匹配:www.te_st.com

 

正则4

 代码如下 复制代码

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?

 暂无错误

 

 正则5

 代码如下 复制代码

(?<=.)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?.)+[a-zA-Z]{2,6}

 不匹配二级域名

 

 正则6

 代码如下 复制代码

([a-z0-9][a-z0-9-]*?.(?:com|cn|net|org|gov|info|la|cc|co)(?:.(?:cn|jp))?)$

 很多顶级域名不匹配

 代码如下 复制代码

<?php
$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(?([^#]*))?(#(.*))?~i';
$url = 'http://www.111cn.net/pub/ietf/uri/#Gonn';
$url = trim($url);
preg_match_all($search, $url ,$rr);
printf("<p>输出URL数据为:</p><pre>%s</pre>n",var_export( $rr ,TRUE));

/*
各分组如下
      $1 = http:
      $2 = http
      $3 = //www.111cn.net
      $4 = www.111cn.net
      $5 = /pub/ietf/uri/
      $6 = <undefined>
      $7 = <undefined>
      $8 = #Gonn
      $9 = Gonn
*/
?>

我想正则匹配邮箱地址这个应用我们做web开的几乎都使用到吧,下面我来给大家介绍在邮箱地址正则匹配时的一些问题分析,有需要更深入理解邮箱地址正则的朋友可进入参考。

有个php正则表达式邮箱问题

 代码如下 复制代码

$a='/([w._]{2,10})@(w{1,}).([a-z]{2,4})/';
$b='1412424545645454545454545k@qq.com';

if(preg_match($a,$b)){
 echo "电子邮件合法";
}else{
 echo "电子邮件不合法啊";
}

为何上面的输出为合法???{2,10}这里不是只能放2到10位数字吗 这里已经超出了10位了

 这个正则是能匹配的,匹配到这样这部分 '545454545k@qq.com'
前面部分的1412424545645454不匹配,所以还是合法的。
你想要匹配一整段正确可以改成这样

 代码如下 复制代码
$a='/^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/';


 要注意你的正则

 代码如下 复制代码
  /([w._]{2,10})@(w{1,}).([a-z]{2,4})/

他没有断言,意味着只要字符串中有符合的部分就匹配
因此{2,10}是只能2到10位匹配,但不针对整个字符串只要有一部分符合就匹配了。

你要判断一整段字符串是否都匹配就要用断言。如^ $

 代码如下 复制代码
/^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/

注意头和尾加上了^ $

 

 代码如下 复制代码
$a='/^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/';
$b='1412424545645454545454545k@qq.com';
if(preg_match($a,$b)){
 echo "电子邮件合法";
}else{
 echo "电子邮件不合法啊";
}

好了下面我来进行更完善写法

PHP 邮箱验证正则表达式 新手实例:

 代码如下 复制代码

<?php
function isEmail($email){
if(preg_match(“/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i”,$email )){
return ‘是邮箱’;
}      else{
return ‘不是邮箱’;
}
}
?>

Javascript(js) 邮箱验证正则表达式:

myreg = /^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,4}$/;
这个可以验证 形如:i@julying.com ,i@i.com 这种邮箱
Javascript(js) 邮箱验证正则表达式 新手实例:
<script type=”text/javascript”>
function isEmail(val){
var myreg = /^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,4}$/;
 
if(!myreg.test(val))
return ‘不是邮箱’;
return ‘是邮箱’;
};
alert( isEmail(‘i@julying.com’) );
</script>

本文章来给大家介绍php 正则表达式解二元方程式,有需要了解的同学可进入参考。
 代码如下 复制代码

<?php

/**
 * 计算 Ax+By=C
 */
function suan($A, $B, $C) {
 $A--;
 $B--;
 $str = str_repeat('-', $C);
 $search = '/^(.*)1{' . $A . '}(.*)2{' . $B . '}$/';
 preg_match($search, $str, $r);
 return array('x' => strlen($r[1]), 'y' => strlen($r[2]));
}

$A = 2;
$B = 3;
$C = 9;
$r = suan($A, $B, $C);

// 测试
echo '计算' . $A . 'x+' . $B . 'y=' . $C . '<br />';
echo 'x=' . ($r[x]) . '<br />';
echo 'y=' . ($r[y]);

// 输出
// 计算2x+3y=9
// x=3
// y=1

?>

本文章来给大家介绍php最简单的验证手机号码程序哦,这里虽然简单但是很实例哦,有需了解的同学可进入参考。

最简单的验证手机号码
中国的手机都是以1开头的10位数字。

用到正则  ^1([0-9]{9})

 代码如下 复制代码
<?php
$mobile = '15858588585';
if(!preg_match('/^1([0-9]{9})/',$mobile)) exit('mobile phone error');
?>

 

^1首字符为1不解释

[0-9] 零到九的数字

{9} 重复10次,就是1加九位数字

上面就是不是手机号也可以通过难哦如19999999999 但这不是一个手机号啊

我们分析得到

移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

联通:130、131、132、152、155、156、185、186

电信:133、153、180、189、(1349卫通)


例2

 代码如下 复制代码

function is_mobile($str){
return preg_match(“/^(((d{3}))|(d{3}-))?13d{9}$/“, $str);
}

本文章来给大家介绍查找html中有id属性的html标签正则表达式,有需要了解的朋友可进入参考。

查找html中有id属性的标签,说具体点就是尖括号<>中还有id=""的html标签。如:
字符串<div style="float:left" id="ab">123213</div><div class="a123">21314423</div>
不匹配<div class="a123">……</div>的内容

 写这个例子可以用

 代码如下 复制代码

<[a-zA-Z0-9][^>]+?id=[^>]+?>.*?</div>

匹配
 

上一个php例子:

 代码如下 复制代码
<?php
$str = '<div style="float:left" id="ab">123213</div><div class="a123">213123</div>';
$search = '#<[a-zA-Z0-9][^>]+?id=[^>]+?>.*?</div>#is';
preg_match_all($search,$str,$r);
echo '<pre>';
print_r($r);
echo '</pre>';
?>

 

本例子输出

 代码如下 复制代码

 

Array
(
    [0] => Array
        (
            [0] => <div style="float:left" id="ab">123213</div>
        )

)
end..

[!--infotagslink--]

相关文章

  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 详解C++ string常用截取字符串方法

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • PHP正则匹配img及标签各属性值(匹配图片函数)

    有一个项目要获取页面中所有img标签中的图片地址,这里我们使用到了preg_match_all正则函数,然后看我下面的一些参数即可实现了。 例 代码如下 复制代码 ...2016-11-25
  • php字符串按照单词逐个进行反转的方法

    本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • C# 16 进制字符串转 int的方法

    这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 获取中文字符串的实际长度代码

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • php 中英文混合字符串截取

    文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
  • C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 【C#基础】Substring截取字符串的方法小结(推荐)

    这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 使用PHP similar text计算两个字符串相似度

    在网站开发中,我们经常使用php similar text 计算两个字符串相似度;1,similar_text的用法 如果我想计算"ly89cn"和"ly89"的相似程度,有两种表示方法复制代码 代码如下: echo similar_text('ly89cn', 'ly89'); ...2015-11-08
  • C#实现将字符串转换成日期格式的方法

    这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25