预览模式: 普通 | 列表

javascript常用正则

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
以下是例子:
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

常用表达式:

"^\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\d+$"    //整数
"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\d+)(\.\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"     //电话号码
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"   //IP地址

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

查看更多...

Tags: javascript

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1998

PHP邮箱格式检查

//邮箱格式检查
function CheckEmail($email)
{
 return eregi("^[0-9a-z][a-z0-9\._-]{1,}@[a-z0-9-]{1,}[a-z0-9]\.[a-z\.]{1,}[a-z]$", $email);
}

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2195

php处理禁用HTML但允许换行的内容

处理禁用HTML但允许换行的内容
function TrimMsg($msg)
{
 $msg = trim(stripslashes($msg));
 $msg = nl2br(htmlspecialchars($msg));
 $msg = str_replace("  ","&nbsp;&nbsp;",$msg);
 return addslashes($msg);
}

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2376

php过滤用于搜索的字符串

//过滤用于搜索的字符串
function FilterSearch($keyword)
{
 global $cfg_soft_lang;
 if($cfg_soft_lang=='utf-8')
 {
  $keyword = ereg_replace("[\"\r\n\t\$\\><']",'',$keyword);
  if($keyword != stripslashes($keyword))
  {
   return '';
  }
  else
  {
   return $keyword;
  }
 }
 else
 {
  $restr = '';
  for($i=0;isset($keyword[$i]);$i++)
  {
   if(ord($keyword[$i]) > 0x80)
   {
    if(isset($keyword[$i+1]) && ord($keyword[$i+1]) > 0x40)
    {
     $restr .= $keyword[$i].$keyword[$i+1];
     $i++;
    }
    else
    {
     $restr .= ' ';
    }
   }
   else
   {
    if(eregi("[^0-9a-z@#\.]",$keyword[$i]))
    {
     $restr .= ' ';
    }
    else
    {
     $restr .= $keyword[$i];
    }
   }
  }
 }
 return $restr;
}

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2619

PHP过滤html标记清除空格

// $rptype = 0 表示仅替换 html标记
// $rptype = 1 表示替换 html标记同时去除连续空白字符
// $rptype = 2 表示替换 html标记同时去除所有空白字符
// $rptype = -1 表示仅替换 html危险的标记
function HtmlReplace($str,$rptype=0)
{
 $str = stripslashes($str);
 if($rptype==0)
 {
  $str = htmlspecialchars($str);
 }
 else if($rptype==1)
 {
  $str = htmlspecialchars($str);
  $str = str_replace(" ",' ',$str);
  $str = ereg_replace("[\r\n\t ]{1,}",' ',$str);
 }
 else if($rptype==2)
 {
  $str = htmlspecialchars($str);
  $str = str_replace(" ",'',$str);
  $str = ereg_replace("[\r\n\t ]",'',$str);
 }
 else
 {
  $str = ereg_replace("[\r\n\t ]{1,}",' ',$str);
  $str = eregi_replace('script','script',$str);
  $str = eregi_replace("<[/]{0,1}(link|meta|ifr|fra)[^>]*>",'',$str);
 }
 return addslashes($str);
}

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3074

PHP获取客户端IP地址

<?php
function GetIP()
{
 if(!empty($_SERVER["HTTP_CLIENT_IP"]))
 {
  $cip = $_SERVER["HTTP_CLIENT_IP"];
 }
 else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
 {
  $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
 }
 else if(!empty($_SERVER["REMOTE_ADDR"]))
 {
  $cip = $_SERVER["REMOTE_ADDR"];
 }
 else
 {
  $cip = '';
 }
 preg_match("/[\d\.]{7,15}/", $cip, $cips);
 $cip = isset($cips[0]) ? $cips[0] : 'unknown';
 unset($cips);
 return $cip;
}
echo '您的IP是:'.GetIP();
?>
代码运行示例:https://blog.guanjianci.net/codetest/php/GetIP.php

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1897

PHP禁止浏览器缓存

@header("Pragma:no-cache\r\n");
@header("Cache-Control:no-cache\r\n");
@header("Expires:0\r\n");

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1788

PHP文本转html

<?php
//文本转HTML
function Text2Html($txt)
{
 $txt = str_replace("  "," ",$txt);
 $txt = str_replace("<","&lt;",$txt);
 $txt = str_replace(">","&gt;",$txt);
 $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);
 return $txt;
}
$text='<h1>你好
世界!!!</h1>
';
echo Text2Html($text);
?>
代码运行示例:https://blog.guanjianci.net/codetest/php/TEXTtoHTML.php

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2174

PHP过滤html代码得到text纯文本

<?php
function SpHtml2Text($str)
{
 $str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
 $alltext = "";
 $start = 1;
 for($i=0;$i<strlen($str);$i++)
 {
  if($start==0 && $str[$i]==">")
  {
   $start = 1;
  }
  else if($start==1)
  {
   if($str[$i]=="<")
   {
    $start = 0;
    $alltext .= " ";
   }
   else if(ord($str[$i])>31)
   {
    $alltext .= $str[$i];
   }
  }
 }
 $alltext = str_replace(" "," ",$alltext);
 $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
 $alltext = preg_replace("/[ ]+/s"," ",$alltext);
 return $alltext;
}
function Html2Text($str,$r=0)
{
 if($r==0)
 {
  return SpHtml2Text($str);
 }
 else
 {
  $str = SpHtml2Text(stripslashes($str));
  return addslashes($str);
 }
}
$html=file_get_contents('http://www.soso.com');
echo Html2Text($html);
?>
运行结果示例:https://blog.guanjianci.net/codetest/php/HtmltoTEXT.php

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2639

PHP全角数字转半角数字过滤非数字字符

function GetAlabNum($fnum)
{
 $nums = array("0","1","2","3","4","5","6","7","8","9");
 $fnums = array("0","1","2","3","4","5","6","7","8","9");
 $fnum = str_replace($nums,$fnums,$fnum);
 $fnum = ereg_replace("[^0-9\.-]",'',$fnum);
 if($fnum=='')
 {
  $fnum=0;
 }
 return $fnum;
}
echo '当前网址:'.GetAlabNum('你好123456789世界!!!');
运行结果示例:https://blog.guanjianci.net/codetest/php/GetAlabNum.php

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3631

PHP获得当前的脚本网址

//获得当前的脚本网址
function GetCurUrl()
{
 if(!empty($_SERVER["REQUEST_URI"]))
 {
  $scriptName = $_SERVER["REQUEST_URI"];
  $nowurl = $scriptName;
 }
 else
 {
  $scriptName = $_SERVER["PHP_SELF"];
  if(empty($_SERVER["QUERY_STRING"]))
  {
   $nowurl = $scriptName;
  }
  else
  {
   $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
  }
 }
 return $nowurl;
}
echo '当前网址:'.GetCurUrl();
运行结果示例:https://blog.guanjianci.net/codetest/php/GetCurURL.php

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1890

PHP中刷新输出缓冲

PHP中刷新输出缓冲
buffer是一个内存地址空间,Linux系统默认大小一般为4096(1kb),即一个内存页。主要用于存储速度不同步的设备或者优先级不同的 设备之间传办理数据的区域。通过buffer,可以使进程这间的相互等待变少。这里说一个通俗一点的例子,你打开文本编辑器编辑一个文件的时候,你每输入 一个字符,操作系统并不会立即把这个字符直接写入到磁盘,而是先写入到buffer,当写满了一个buffer的时候,才会把buffer中的数据写入磁 盘,当然当调用内核函数flush()的时候,强制要求把buffer中的脏数据写回磁盘。

      同样的道理,在PHP中,当执行echo,print的时候,输出并没有立即通过tcp传给客户端浏览器显示, 而是将数据写入php buffer。php output_buffering机制,意味在tcp buffer之前,建立了一新的队列,数据必须经过该队列。当一个php buffer写满的时候,脚本进程会将php buffer中的输出数据交给系统内核交由tcp传给浏览器显示。所以,数据会依次写到这几个地方echo/pring -> php buffer -> tcp buffer -> browser


在PHP中与刷新缓冲相关的函数有三个:

1). flush
刷新PHP程序的缓冲,而不论PHP执行在何种情况下。该函数将当前为止程序的所有输出发送到用户的浏览器。 但是该函数不会对服务器或客户端浏览器的缓存模式产生任何影响,也不会对PHP本身的缓存产生任何影响。

查看更多...

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2065

 广告位

↑返回顶部↑