您的当前位置:首页>全部文章>文章详情

【PHP】中文日文字符串校验解决方案

CrazyPanda发表于:2023-12-14 10:17:03浏览:385次TAG:

由于开发需要,要识别中文和日文文字段落,网上查了很多资料,大部分都是使用正则校验preg_match,但中文和日文有些汉字是相同的,不能直接校验出结果,经过多次修改,也算是找出了解决办法。

首先找到中文和日文的正则校验

中文校验:

preg_match('/\p{Han}+/u','',$str);

日文校验:

preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $str)

字符串校验结果以中文优先,然后是日文,所以这里我用了另一个方法,正则替换字符串preg_replace,

先将获取到的字符串中的中文全部替换掉,剩下的字符串再进行日文的正则校验,如果还是日文,则判断为日文字符串,否则判断为中文字符串。

//中文字符替换
$str = preg_replace('/\p{Han}+/u','',$str);
//日文字符校验
if (preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $str))
{
    return true;
}
else
{
    return false;
}

实际操作

中文字符串:

$str = '在宇宙的辽阔中,
星辰闪耀光芒。
生命如花绽放,
美丽与希望相伴。';

中文字符替换后,只剩下标点符号,

$str = ',
。
,
。';

最终结果判断为中文。


日文字符串:

$str = '宇宙の広がりで、
星々輝く。
生命は花のように、
美しさと希望を共に咲き誇る。';

中文字符替换后,只剩下日文及标点符号

$str = 'のがりで、
く。
はのように、
しさとをにきる。';

最终匹配结果为日文。


总结:

经过此操作已经实现了中文日文字符串校验,满足了功能需要,期间也试过先将日文字符全部替换掉,仅剩中文字符,但这种方式判断不准确,只能先把中文字符替换掉。

已上就是本次中文日文校验解决方案。

猜你喜欢

【PHP】生成二维码海报
目录1.版本2.安装扩展3.生成海报4.代码解释5.附一个字体文件 6.参考文档1.版本php:7.2+ ,本示例使用的是7.3endroid/qr-code :4.* ,本示例使用的是4.3intervention/image:2.* ,本示例使用的是2.7使用前检查下是否启用了 gd2 扩展2.安装扩展composer require endroid/qr-codecomposer require intervention/image3.生成海报<? php &nb
发表于:2023-12-02 浏览:766 TAG:
【PHP】php逻辑测试,测试也要设计—phpunit实践
概述本文阐述如何利用面向对象的思想,在phpunit框架下实现测试用例、数据文件、配置信息和lib库等信息分离,并能有效组合。也许有些QA认为,测试代码只要能满足测试要求即可,根本不需要有什么设计的理念。其实不然,好的测试代码,应该是可读性强,可扩展性强。以下分享一个我在实际项目中的小想法来阐述这个观点,仅作抛砖引玉之用。具体实现在autoFunc测试目录下,创建conf、data、lib三个目录,分别用于保存配置信息、数据文件和lib库,测试用例直接放在autoFunc下。A 方案直接在tes
发表于:2024-06-22 浏览:258 TAG: #php #测试
【PHP】PHP面试题
100 个常见的 PHP 面试题1) PHP是什么?PHP是一种基于脚本的web语言,开发者可以动态的创建网页。2) PHP的全称?Hypertext Preprocessor(超文本预处理器)。3) PHP与哪些编程语言相似?PHP语法类似于Perl和C。5) 实际使用的PHP是哪个版本?推荐使用版本7。6) 如何从命令行执行PHP脚本?在命令行界面(CLI),指定要执行的脚本的文件名,如下所示:1php script.php7) 如何从命令行界面运行交互式PHP Shell?将PH
发表于:2024-05-22 浏览:281 TAG:
【PHP】nginx负载均衡器的部署(5层\7层)
目录什么是负载均衡?实验:实现Web业务的负载均衡(http协议负载均衡)一、实验规划图:如何实现克隆虚拟机呢?二、实验步骤:1、准备4台服务器,一台做负载均衡器,另外的3台做web服务器,每台都需要安装nginx,建议都编译安装nginx,统一安装配置2、安装nginx成功后配置nginx里的网页,使之呈现对应的效果3、修改四台linux机器的名字:4、检查配置是否成功5、对n
发表于:2024-05-29 浏览:359 TAG:
【PHP】php怎么将汉字转为拼音
PHP是一种非常流行的服务端脚本语言,它具有灵活、快速、安全等优点,因此被广泛应用于Web开发、互联网应用和企业级软件开发等领域。而将汉字转为拼音是一个常见的需求,特别是在中文搜索、排序、筛选等场景下,可以提高用户体验和检索准确性。本文将介绍如何使用PHP实现将汉字转为拼音的方法。一、使用PHP拓展PHP中有一个名为pinyin的拓展,通过它可以很方便地将汉字转为拼音。首先需要在php.ini文件中开启拓展,找到下面这行并取消注释,保存并重启PHP服务:extension=pinyin.so登录
发表于:2024-01-05 浏览:313 TAG:
【PHP】php中标识符允许出现的符号有哪些
php中标识符允许出现的符号有字母、数字、下划线和中文字符。详细介绍:1、字母和数字,标识符可以由字母和数字组成,它们可以以字母开头,后面可以跟随任意数量的字母、数字或下划线;2、下划线,标识符可以包含下划线,但不能以下划线开头;3、中文字符,从PHP 7.2版本开始,允许在标识符中使用中文字符,$中文变量、function中文函数()等都是合法的标识符等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP中,标识符是用来标识变量、函数、类、
发表于:2023-12-06 浏览:495 TAG:
【PHP】php后端搜索插件有哪些
php后端搜索插件有Elasticsearch、Solr、Sphinx、Algolia、MySQL全文搜索等等。详细介绍:1、Elasticsearch,提供了强大的全文搜索功能,可以快速地处理大量的数据,并支持复杂的查询和过滤;2、Solr,提供了全文搜索、分布式搜索和面向文档的搜索功能,Solr具有高性能和可扩展性,并支持多种查询语法和过滤器;3、Sphinx等等。本教程操作系统:windows10系统、PHP8.1.3版本、Dell G3电脑。PHP后端搜索插件是一种用于在网站或
发表于:2023-12-04 浏览:770 TAG:
【PHP】php中?:与??运算符有什么不同?
在PHP 7中,有两个类似的语法结构:“??”和“?:”,它们都是用于处理条件判断和返回值的运算符。尽管它们看起来相似,但它们的作用和用法有一些区别。"?:"是三目运算符,语法格式为:$result = $test ? $test : ′ ′ ; 意思就是当test存在时(即empty($test)为false),则返回它本身,否则返回空(当然也可以返回其他,这里的空只是举个例子)。"??"是php7新引入的语法,它相当于是isset($result[‘k
发表于:2024-08-01 浏览:272 TAG:
【PHP】PHP框架在大型电子商务和SaaS平台中的应用场景和挑战
hp框架在大型电子商务和saas平台中广泛用于构建购物车、用户管理和数据处理等功能。应用场景包括但不限于电子商务平台的购物车和支付网关构建,以及saas平台的用户管理和数据存储功能开发。然而,这些平台也面临着性能、可扩展性、安全和维护方面的挑战。PHP框架在大型电子商务和SaaS平台中的应用场景和挑战简介PHP是一种广泛使用的后端编程语言,凭借其灵活性、广泛的库支持和易于使用性,在大型电子商务和SaaS平台中备受青睐。本文将探讨这些平台中PHP框架的应用场景和面临的挑战。应用场景电子商务:构建
发表于:2024-05-30 浏览:266 TAG:
【PHP】php常见的集群有哪些
php常见的集群有LAMP集群、Nginx集群、Memcached集群、Redis集群和Hadoop集群。详细介绍:1、LAMP集群,LAMP是指Linux、Apache、MySQL和PHP的组合,是一种常见的PHP开发环境,在LAMP集群中,多个服务器运行相同的应用程序,并通过负载均衡器将请求分发到不同的服务器上;2、Nginx集群,Nginx是一种高性能的Web服务器等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。PHP是一种广泛使用的服务
发表于:2023-12-06 浏览:355 TAG: