php正则匹配汉字+字母(正则匹配特定字符串)

php正则匹配汉字!/^[\x{4e00}-\x{9fa5}]+$/u以上这个正则表达式就是困扰了很多php程序员的匹配汉字的正则表达式大家可能会觉得很简单,实际上不同编码,不同程序语言,都有些细微的出入,稍不注意就得不到正确的结果。下面是utf-8编码的例子:$str=”汉字”;if(preg_match(“/^[\x{4e00}-\x{9fa5}]+$/u”,$str)){…

大家好,又见面了,我是你们的朋友全栈君。

php正则匹配汉字!

/^[\x{4e00}-\x{9fa5}]+$/u

以上这个正则表达式就是困扰了很多php程序员的匹配汉字的正则表达式

大家可能会觉得很简单,实际上不同编码,不同程序语言,都有些细微的出入,稍不注意就得不到正确的结果。

下面是utf-8编码的例子:
$str = "汉字";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {

print("该字符串全部是中文");
} else {

print("该字符串不全部是中文");

下面的例子包含gbk,gb2312的例子:

<?php
$action = trim($_GET['action']);
if($action == "sub")
{

    $str = $_POST['dir'];    
    //if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312汉字字母数字下划线正则表达式 
    if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str))   //UTF-8汉字字母数字下划线正则表达式
    {   
         echo "<font color=red>您输入的[".$str."]含有违法字符</font>";   
     }
     else 
     {

         echo "<font color=green>您输入的[".$str."]完全合法,通过!</font>";   
     }
}
?>
<form method="POST" action="?action=sub">
输入字符(数字,字母,汉字,下划线):
     <input type="text" name="dir" value="">
     <input type="submit" value="提交">
</form>

来源:http://blog.csdn.net/lihaiboas1/article/details/7030735

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128048.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月11日 上午10:00
下一篇 2022年4月11日 上午10:00


相关推荐

  • M3U8在线播放

    M3U8在线播放M3U8在线播放前言一、思路二、代码框架1.移动端适配2.改变M3U8地址3.设置videojs参数4.增加快进等功能写在最后前言当我们在网上愉快观影的时候,难免会遇到“M3U8格式”的视频。聪明的你应该也发现了,它是没办法直接播放的。它其实只是一个索引文件,根据它找到相应的.ts文件再进行播放。而这样做的好处,大概就是做多码率适配,保证视频播放的流畅性。有感兴趣的小伙伴可以参看这里—>M3U8文件格式。我今天要干的事情呢,就是解决当我们找到一个M3U8地址之后如何方便的播放它~一

    2022年6月15日
    139
  • Elasticsearch系列——实战探索text与keyword的区别

    Elasticsearch系列——实战探索text与keyword的区别前言本文使用的工具是 kibana Linux Kibana 的安装与测试 在 elasticsearc x 版本 字符串数据只有 string 类型 ES 更新到 5 版本后 取消了 string 数据类型 代替它的是 keyword 和 text 数据类型那么 text 和 keyword 有什么区别呢 我们通过下面的步骤来探索一下 step1 添加数据首先 使用 bulk 往 es

    2026年3月5日
    9
  • 如何画UML类图

    如何画UML类图简单介绍统一建模语言 UnifiedModel UML 是用来设计软件蓝图的可视化建模语言 面向对象的建模语言的国际标准 它的特点是简单 统一 图形化 能表达软件设计中的动态与静态信息 类 接口 类图类类 Class 是指具有相同属性 方法和关系的对象的抽象 它封装了数据和行为 是面向对象程序设计 OOP 的基础 具有封装性 继承性和多态性等三大特性 在 UML 中 类使用包含类名 属性和操作且带有分隔线的矩形来表示 类名类名 Name 是一个字符串 例如

    2025年12月12日
    6
  • C#中IntPtr类型

    1.C#中的IntPtr类型被称之为“平台特定的整数类型”,用于本机资源,例如窗口句柄。2.资源的大小取决于使用的硬件和操作系统,即此类型的实例在32位硬件和操作系统中将是32位,在64位硬件和操作系统中将是64位;但其大小总是足以包含系统的指针(因此也可以包含资源的名称)。3.在调用API函数时,类似含有窗口句柄参数(HANDLE)的原型函数,应显示地声明为IntPtr类型。4.In…

    2022年4月4日
    197
  • 数据是企业的无价財富——爱数备份存储柜server的初体验(图文)

    数据是企业的无价財富——爱数备份存储柜server的初体验(图文)

    2022年2月6日
    46
  • 惊艳的时间轮定时器「建议收藏」

    惊艳的时间轮定时器「建议收藏」http://www.cnblogs.com/zhongwencool/p/timing_wheel.html问题引入:游戏里面每个Player身上有很多buffs,在每一个tick(最小时间段)都要去检查buff里面的每一个buff是不是过期,产生的效果如何,造成在每个tick里面都去遍历一个长list,明显很不好。怎么优化?1.原始模型:

    2026年4月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号