当我在一个字符串的开头使用表情符号时,正则表达式无法正常工作。

我的代码是用 PHP. 我试图在数据库中存储我发送的电子邮件的主题,只有在我删除了我在这些电子邮件的主题行中包含的表情符号之后。我创建了这个正则表达式。

$cleansubject = preg_replace("/[^a-zA-Z0-9\s]/", "", $subject);

当我把表情符号放在字符串的末尾时,它就会工作,比如:

enter image description here

但是如果表情符号在字符串的开头,它就不能工作,这个条目甚至没有被存储在我的数据库中。

enter image description here

你能在我的正则表达式中发现什么问题 来达到我想要的效果吗?

更新1。 显然,正则表达式就是好的。

enter image description here

解决方案:

添加 “u “修饰语 到你的正则表达式中,使其将字符串视为UTF-8。

$cleansubject = preg_replace("/[^a-zA-Z0-9\s]/u", "", $subject);

或者使用内置函数从字符串中删除Unicode字符,例如 图标v, utf8_decode, mb_convert_encoding重新编码.

$cleansubject = trim(iconv('UTF-8', 'ASCII//IGNORE', $subject));

给TA打赏
共{{data.count}}人
人已打赏
解决方案

React: 重塑行为

2022-5-14 21:00:23

解决方案

Django模型图片字段要求使用默认图片。

2022-5-14 21:00:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索