php数字长度判断的正则表达试

 更新时间:2016年11月25日 17:41  点击:1552
正则表达试对数据的验证是非常的简单了我们直接可以使用preg_match进行验证了,下面我们来看看小编整理的两个数字验证的两个函数。

安全验证的时候就需要这个判断了下面有2个判断一个是判断需要输入的指定数量一个是几位数至几位数下面就是第一种的判断

php 数字长度是否为11位数组

<?php
$text = "111111111112";
if(preg_match('/^\d{11}$/', $text)){
echo "y";
}else{
echo "n";
}
?>

第二种为 判断是否为 4 位数到 11 位数

<?php
$text = "1111111";
if(preg_match('/^\d{6,11}$/', $text)){
echo "y";
}else{
echo "n";
}
?>

第三种,

echo $符合条件 = is_numeric($表单变量) && (($len = strlen($表单变量)) == 16 || $len == 18);

或者:

echo $符合条件 = preg_match("/^\d{16}|\d{18}$/", $表单变量);

这个东西其实我们开发人员来讲常用了,以前做一个抓取其它网站友情连接时用过,今天看到一朋友整理了一个PHP获取指定URL页面中的所有链接函数,整理过来我们一起来看看吧。


以下代码可以获取到指定URL页面中的所有链接,即所有a标签的href属性:

// 获取链接的HTML代码
$html = file_get_contents('http://www.111cn.net');

$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate('/html/body//a');

for ($i = 0; $i < $hrefs->length; $i++) {
   $href = $hrefs->item($i);
   $url = $href->getAttribute('href');
   echo $url.'<br />';
}

这段代码会获取到所有a标签的href属性,但是href属性值不一定是链接,我们可以在做个过滤,只保留http开头的链接地址:


// 获取链接的HTML代码
$html = file_get_contents('http://www.111cn.net');

$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate('/html/body//a');

for ($i = 0; $i < $hrefs->length; $i++) {
   $href = $hrefs->item($i);
   $url = $href->getAttribute('href');
  
   // 保留以http开头的链接
   if(substr($url, 0, 4) == 'http')
      echo $url.'<br />';
}

fopen()函数读取指定网页中的所有链接并统计出数量,在一些需要采集网页页容的地方,适合使用本代码,本例以读取百度首页为例,找出百度首页中所有的链接地址,代码经过测试,完全可用:

<?
if(empty($url))$url = "http://www.baidu.com/";//需要采集链接的URL地址
$site=substr($url,0,strpos($url,"/",8));
$base=substr($url,0,strrpos($url,"/")+1);//文件所在目录
$fp = fopen($url, "r" );//打开url地址页面
while(!feof($fp))$contents.=fread($fp,1024);
$pattern="|href=['\"]?([^ '\"]+)['\" ]|U";
preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);//使用正则匹配所有href=
for($i=0;$i<count($regArr);$i++){//找出所有匹配的链接
if(!eregi("://",$regArr[$i][1]))//判断是否是相对路径,即是否还有://
    if(substr($regArr[$i][1],0,1)=="/")//是否是站点的根目录
    echo "link".($i+1).":".$site.$regArr[$i][1]."<br/>";//根目录
    else
    echo "link".($i+1).":".$base.$regArr[$i][1]."<br/>";//当前目录
else
    echo "link".($i+1).":".$regArr[$i][1]."<br/>";//相对路径
}
fclose($fp);
?>

字符替换对于学php程序开发的人员来讲估计都觉得不是事了,在此小编为各位整理一些关于替换变量中字符的一些例子,希望对各位有帮助。

preg_replace字符替换例子

这里介绍三种常用方法.

 代码如下 复制代码

方法一:

<?php
$str = preg_quote('(银子)');
$txt = '我的呢称(银子)';
echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt);
?>

方法二:

<?php
$str = quotemeta('(银子)');
$txt = '我的呢称(银子)';
echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt);
?>

方法三:

<?php
$str = '(银子)';
$txt = '我的呢称(银子)';
echo preg_replace("/(Q$strE)/","<span style='color:#f00;'>$1</span>",$txt);
?>

三种方法都返回同样结果.. PHP中的Perl风格正则与Perl完全一样.连quotemeta也是通用的..

str_replace() 函数使用一个字符串替换字符串中的另一些字符


function strreplace($str){
      $str = stripslashes($str);
      $str = str_replace(chr(92),'',$str);
      $str = str_replace(chr(47),'',$str);
      $str = str_replace(chr(10).chr(13),"<br>",$str);
      $str = str_replace('<',"&lt;",$str);

      $str = str_replace('>',"&gt;",$str);
      $str = str_replace(';',";",$str);
      $str = str_replace('"',"“",$str);
      $str = str_replace("'","‘",$str);
      $str = str_replace(" "," ",$str);
      $str = str_replace("/**/"," ",$str);

      return trim($str);
}

 双引号替换问题

$tmp_data= str_replace("\"","",$tmp_data);双引号替换为空字符串

$tmp_data= str_replace("\"","'",$tmp_data);双引号替换为单引号

当然ereg_replace 作为正则表达式必须关注的,也要提示一下

数字正则比字母来看是相对来说比较容易的了,下文小编给各位整理了几段数字正则表达式了,有兴起的可以进入 来看看。

例子,提取字符串中的数字

$str = ereg_replace('[^0-9]',",$str);和

$str = preg_replace( '/[^\d]/ ', ' ',$str);


数字正则过滤

if(preg_match("/^\d*$/",$yebihai))  
echo('是数字');
else 
echo('不是数字');

或者用函数

if(is_numeric($yebihai))
echo('是数字');
else
echo('不是数字');

下面验证数字一些正确

验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$

网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的url地址了,下面一起来看看小编整理的几个PHP正则表达式匹配验证提取网址URL实例.

 匹配网址 URL 的正则表达式:

 代码如下 复制代码

(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)

示例:PHP 正则表达式自动匹配字符串是否为 url 地址,是的话自动加上链接。

 代码如下 复制代码

<?php   
function autolink($rurl){   
   $rurl = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_
\+.~#?&//=]+)', '<a href="\1" target=_blank rel=nofollow>\1
</a>', $rurl);   // rel=nofollow 是告诉搜索引擎不要去抓取这个链接  
   if( strpos($rurl "http") === FALSE ){   
      $rurl = eregi_replace('(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+
)', '<a href="http://\1" target=_blank rel=nofollow >\1</a>', $rurl);
      }else{   
         $rurl = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@
:%_\+.~#?&//=]+)', '\1<a href="http://\2" target=_blank rel=nofol
low>\2</a>', $rurl);   
   }   
   return $rurl;   
}   
?>

调用 autolink() 函数

 代码如下 复制代码


<?php   
$str = 'http://www.111cn.net';   
echo autolink($str);   
?>


例子1 获得https开头的例子

 代码如下 复制代码

//https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?

//PHP Example: Automatically link URL's inside text.

$text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);


例子2 直接提取页面中<a 中的url地址

 代码如下 复制代码
function match_links($document) {
preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$document,$links);
while(list($key,$val) = each($links[2])) {
if(!empty($val))
$match['link'][] = $val;
}
while(list($key,$val) = each($links[3])) {
if(!empty($val))
$match['link'][] = $val;
}
while(list($key,$val) = each($links[4])) {
if(!empty($val))
$match['content'][] = $val;
}
while(list($key,$val) = each($links[0])) {
if(!empty($val))
$match['all'][] = $val;
}
return $match;
}

好了到此关于正则获得url地址也就介绍完了,上面的几个例子各有所长了,大家可以根据自己的需求来选择更合适自己的匹配验证提取网址URL正则。

 

[!--infotagslink--]

相关文章

  • 金额阿拉伯数字转换为中文的存储过程

    Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • C#实现猜数字游戏

    这篇文章主要为大家详细介绍了C#实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 安卓开发之设置密码只能输入字母和数字的组合

    设置登录密码我们一般会有限制的如由什么组合了,下面我们来看一篇关于安卓开发之设置密码只能输入字母和数字的组合方法,具体的细节如下所示。 无论是电脑还是手机...2016-09-20
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • C#将数字转换成字节数组的方法

    这篇文章主要介绍了C#将数字转换成字节数组的方法,涉及C#字符串操作的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • php数字每三位加逗号的功能函数

    php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: function num_format($num){ if(!is_numeric($num)){ return false; } $num = explode('.',$num);//把整数和小数分开 $rl = $num[1];//小数部分的值...2015-10-23
  • C++实现数字转换为十六进制字符串的方法

    这篇文章主要介绍了C++实现数字转换为十六进制字符串的方法,涉及C++操作数字与字符串转换的相关技巧,需要的朋友可以参考下...2020-04-25
  • js正则学习小记之匹配字符串字面量

    关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配,因为我想学完之后写个语法高亮练手,所以用js代码当作例子...2021-05-07
  • Lua判断变量是否为数字、字符串是否可以转换为数字等

    这篇文章主要介绍了Lua判断变量是否为数字、字符串是否可以转换为数字等,本文讲解了Lua 判断是字符还是数字的方法、Lua判断数字的方法、判断可否转换为数字的方法、判断并且准备一个初值的方法,需要的朋友可以参考下...2020-06-30
  • js 正则学习小记之匹配字符串字面量优化篇

    昨天在《js 正则学习小记之匹配字符串字面量》谈到 /"(?:\\.|[^"])*"/ 是个不错的表达式,因为可以满足我们的要求,所以这个表达式可用,但不一定是最好的...2021-05-07
  • php 判断是否是中文/英文/数字示例代码

    复制代码 代码如下: $str='asb天水市12'; if (preg_match("/^[/x7f-/xff]+$/", $str)){ echo '全部是汉字'; }else { echo '不全是汉字'; } /** PHP自带的判断是否是中文, eregi('[^/x00-/x7F]', $str ) //中文 ereg...2013-10-04
  • C#使用正则表达式过滤html标签

    最近在开发一个项目,其中有需求要求我们把一段html转换为一般文本返回,使用正则表达式是明智的选择,下面小编给介绍下C#使用正则表达式过滤html标签,需要的朋友参考下...2020-06-25
  • OpenResty中正则模式匹配的2种方法详解

    在 OpenResty 中,同时存在两套正则表达式规范:Lua 语言的规范和 Nginx 的规范,下面这篇文章主要给大家介绍了关于OpenResty中正则模式匹配的2种方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。...2020-06-30
  • JS基于正则截取替换特定字符之间字符串操作示例

    这篇文章主要介绍了JS基于正则截取替换特定字符之间字符串操作方法,结合具体实例形式分析了JS基于正则实现针对特殊字符、数字等字符串类型的截取操作相关技巧,需要的朋友可以参考下...2017-02-08
  • 浅谈JS正则RegExp对象

    这篇文章主要介绍JS正则RegExp对象,正则表达式是描述字符模式的对象,用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。下面就来看具体详情,需要的朋友可以参考一下...2021-10-21