正则匹配示例

正则的写法不是唯一的 自己找个规则 能匹配就行

   /**
    *  1.
    *  判断一点字符串是手机电话 还是数字串
    */ 
   $agentid  = '222222';
   $search = '/^0?1[3|4|5|6|7|8][0-9]\d{8}$/';
   if ( preg_match( $search, $agentid ) )
   {
         echo ‘为电话’;
   }else {
        echo ‘为数字串’;
   }
   
   /**
    * 2.
    * js 匹配手机号
    */
   if(!(/^0?1[3|4|5|6|7|8][0-9]\d{8}$/.test(account))){
      alert(‘输入正确手机号’);
   }else{
     alert("手机号正确");
   }

  /**
   * 3.
   * 验证身份证(不包含省份验证)
   */
   $str = '/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/';
   if (!preg_match($str,"123455")){
        echo "请输入正确的身份证号码";
    } 
    #邮箱 : /^[a-z0-9]([a-z0-9_\-.]+)?@([a-z0-9\-]+).([a-z.]+)$/i
    #qq :  /^[1-9][0-9]{4,11}$/
    # ((0[1-9])|(1[0-2]))    判断 1-12月
    # (([0-2][1-9])|10|20|30|31) 判断 1-31号 
    #{n}  n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
    #\d{8} 相当于匹配 [0-9] 八次
    
  /**
   * 4.
   *过滤标签
   */
   $content = preg_replace("/<(\/?link.*?)>/si",'',$str);//link
   $content = preg_replace("/<a[^>]*>(.*?)<\/a>/is", ‘’,$str);//a
   #<a[^>]  <a ..... 任意内容....>

  /**
  * 5.
  *  根据<img>标签匹配图片路径
  */
  preg_match_all('/<img[^>]+src=\"([^"]+)\"[^>]{0,}>/is', $str,$Mainmatch);
   //$Mainmatch存放匹配结果 $str匹配内容

/**
  * 6.
  * js 去除前后所有空格
  */
  str.replace(/(^\s*)|(\s*$)/g, "") 
  ^\s* 开始的所有的空白字符
  \s*$ 结束前的所有空字符
  

#备注
//   ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
//   $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
//   \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
// ’ * ‘匹配前面的子表达式零次或多次
/**
* 7.
*   将<br\>转换成 \r\n
*/
preg_replace("/<(\/?br.*?\/)>/si","\r\n",$str)


/**
 * 8.
 *  匹配一个区间 :比如数字头到数字尾
 */
$agentid  = 'ZYPGV1.1.0.23sdsvc.exe';
preg_match_all("/(\d+)(.*)(?)(\d+)/", $agentid, $Mainmatch);
var_export($Mainmatch[0]);
array ( 0 => '1.1.0.23', );

/**
 * 9.
 * 密码 8-15位 需大小写数字
 */
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9]{8,14}$/
/**
 * 10. 
 * js 字符串切割 以中文逗号切割    引号内的内容不做处理
 */
<script type="text/javascript">
	var str = '111,222,333,444,5555,90,"666,777,88888。",A-';
    var result =[]
    result= str.split(/,|(".+?")/).filter(function(ele){
    	return ele!==''&&ele!==undefined;
    });
    console.log(result);
</script>

如图:
在这里插入图片描述

/**
 * 11. 
 * 根据指定字符获取中间内容
 */
$str ='/uuep-ueoss/sapusp/ssasui/sjaius';
preg_match_all("/[^\/]([a-z0-9\-]+)[^\/]{1}/", $str, $Mainmatch);
# 获取/*****/ 中间值 
# a-z0-9\- (中间值 只定义了 a-z 0-9 和- )
# 如果有其他特殊字符需求可以拼接在里面
var_dump($Mainmatch);

水水的写几个 等想的起来了 (不会的可以私我)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值