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

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

CrazyPanda发表于:2023-12-14 10:17:03浏览:391次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】php判断字符串是否含有日文字符
可以使用PHP的正则表达式函数preg_match()来检测字符串上的日文字符。以下是一个例子:$str = "こんにちは、世界!"; if (preg_match('/\p{Hiragana}|\p{Katakana}|\p{Han}/u', $str))  {     echo "字符串包含日文字符。"; }  else&nbs
发表于:2023-12-13 浏览:307 TAG:
【PHP】MongoDB介绍
MongoDBA是一个开源的、面向文档的NoSQLA数据库,它提供了高性能、可扩展的数据存储解决方案。MongoDB支持动态查询、高可用性、自动分片等功能,使其成为处理大规模数据集的优选数据库。MongoDB的核心特性包括:面向集合存储:数据被分组存储在集合中,集合类似于RDBMS中的表,但提供了更高的灵活性和无模式存储。无模式结构:存储在集合中的数据是无模式的,即每个文档可以有不同的字段和值类型,这为用户提供了极大的灵活性。高性能:MongoDB利用内存中的数据缓存来提高性能,并支持数据的
发表于:2024-05-28 浏览:294 TAG:
【PHP】php怎么去数组中的指定几条
php使用下标、array_key_exists()函数、isset()函数、unset()函数和array_splice()函数去数组中的指定几条。详细介绍:1、下标,下标从0开始,依次递增;2、array_key_exists()函数,该函数接受两个参数,第一个参数是要检查的键,第二个参数是要检查的数组;3、isset()函数,接受一个参数,即要检查的数组元素等等。本教程操作环境:windows10系统、php8.1.3版本、DELL G3电脑。PHP是一种广泛使用的编程语言,它提
发表于:2023-12-06 浏览:306 TAG:
【PHP】php解析大量数据json文件方式
1. 在处理超大文件时,我们可以使用逐行读取的方式来解析JSON数据。具体步骤如下:打开文件并逐行读取数据。每次读取一行数据后,使用json_decode()函数将其解析为JSON对象。对解析后的JSON对象进行处理,例如提取需要的数据或进行其他操作。继续读取下一行,重复步骤2和步骤3,直到文件读取完毕。下面是一个示例代码,演示了如何使用以上步骤来解析超大JSON文件:$file = fopen('large_file.json', 'r&#
发表于:2024-08-13 浏览:281 TAG: #php #json
【PHP】php 对比2个数组是否一样
在 PHP 中,可以使用 array_diff 和 array_intersect 函数来比较两个数组是否相同。同时,还可以使用 == 或 === 运算符来比较两个数组是否相等。array_diff 函数array_diff 函数可以比较两个数组的差集,即找出在第一个数组中出现的元素,但是在第二个数组中不存在的元素。示例代码:$array1 = array(1, 2, 3); $array2 = array(1, 3
发表于:2023-12-18 浏览:331 TAG:
【PHP】如何使用PHP在微信小程序中实现AI功能?
如何使用PHP在微信小程序中实现AI功能?随着人工智能的发展,AI(Artificial Intelligence,人工智能)技术被广泛应用于各个领域。微信小程序作为一种强大的移动应用开发平台,也可以集成AI功能,为用户提供更智能的服务。本文将介绍如何使用PHP语言在微信小程序中实现AI功能,并且给出具体的代码示例。首先,我们需要了解微信小程序提供的开发接口和AI技术的实现方案。微信小程序提供了开放平台接口,可以通过接口与后端服务器进行交互。AI技术方面,我们可以选择使用开源的机器学习
发表于:2023-12-25 浏览:325 TAG:
【PHP】thinkphp5.1+workman+jsonRpc
1.下载jsonRpc包放到vendor目录下  2.启动文件  3.启动效果:启动命令php allserver.php start  4.RpcClient Rpc客户端+RpcClient Rpc服务端 访问:http://localhost/product/public/index/RpcTest/rpctest 报错:stream_socket_client(): unable to connect to tcp://127.0.0.1:2015 (由于目标计算机积极拒绝,无法连接。
发表于:2024-05-27 浏览:341 TAG:
【PHP】php手动加载vendor第三方库
方式一:手动配置autoload文件方式二:在composer.json 中 调整 autoload场景不知道做php开发的小伙伴有没有遇到这样的痛点:使用第三方框架时安装的依赖包,你接手时候执行 composer update/insetall 时候总是超时或者安装时候总是报某个依赖包于其冲突。导致浪费大量时间去调整,最终无功而返。场景复现:我在一个旧的项目包上,想下载一个依赖包,执行安装时,总是包版本和现在不兼容或者一些依赖的问题。切换了镜像也是如此,所以考虑不如手动安装来的快~方案只需要手
发表于:2024-03-01 浏览:355 TAG:
【PHP】ThinkPHP6中间件介绍
一、什么是中间件?当客户端发送请求至服务器时,HTTP请求会经过多个中间件,最后返回响应给客户端。中间件可以在请求到达目标控制器或动作之前对请求进行操作可以在响应离开目标控制器或动作之前对响应进行操作二、中间件的作用我们可以在不修改应用程序逻辑的情况下添加额外的功能,如登录验证、检查用户权限、权限控制请求过滤判断当前浏览器环境是在微信或支付宝写系统日志统计三、中间件的类型1、前置中间件前置中间件的意思就是,在http请求完成之前,先执行中间件的代码。一般用来检查用户权限在app/middlewa
发表于:2024-07-29 浏览:257 TAG: #php #thinkphp #中间件
【PHP】PHP常见漏洞的防范
一、常见PHP网站安全漏洞对于PHP的漏洞,目前常见的漏洞有五种。分别是Session文件漏洞、SQL注入漏洞、脚本命令执行漏洞、全局变量漏洞和文件漏洞。这里分别对这些漏洞进行简要的介绍。1、session文件漏洞Session攻击是黑客最常用到的攻击手段之一。当一个用户访问某一个网站时,为了免客户每进人一个页面都要输人账号和密码,PHP设置了Session和Cookie用于方便用户的使用和访向。2、SQL注入漏洞在进行网站开发的时候,程序员由于对用户输人数据缺乏全面判断或者过滤不严导致服务器执
发表于:2024-03-11 浏览:347 TAG: