美文网首页
关于零宽度隐藏字符\u200b|\u202d|\u202c

关于零宽度隐藏字符\u200b|\u202d|\u202c

作者: Firstmeet初见 | 来源:发表于2021-05-14 13:07 被阅读0次

1、复现

<?php
// 示例
header("Content-type: text/html; charset=utf-8");
$str = '你好';
var_dump(mb_strlen($str)); # 输出结果 int(4)
让隐藏字符显现
var_dump(json_encode($str)); # 输出结果 string(26) ""\u4f60\u597d\u200b\u200b""

很明显后面多了两个隐藏的字符\u200b

2、处理
js过滤处理

function filter_str(str) {
    return str.replace(/[\u200b-\u200f\uFEFF\u202a-\u202e]/g, "");
}

php过滤处理

function filter_str(str) {
    $str = json_encode($str); // 转换为Unicode编码

    $patterns     = ['/®/', '/&#8203;/', '#\\\u200b#us']; // 正则表达式
    $replacements = ['', '', '']; // 替换成的字符

    $str = preg_replace($patterns, $replacements, $str);

    $str = json_decode($str, true); //解码Unicode编码
    return $str;
}

参考链接:https://blog.csdn.net/wuxianbing2012/article/details/107206020

相关文章

  • 关于零宽度隐藏字符\u200b|\u202d|\u202c

    1、复现 2、处理js过滤处理 php过滤处理 参考链接:https://blog.csdn.net/wuxian...

  • 正则表达式笔记(三)

    边界 断言也被称做零宽度断言(zero-widthassertion)。零宽度断言不匹配字符,而是匹配字符串中的位...

  • unicode码\u202c\u202d

    公司新上线的iOS APP账号注册是手机号码,前段时间有客户反应登录不上,相同的账号反复测试都能登录。昨天登录别人...

  • ios u202c、u202d问题记录

    公司APP最近客户提出问题,苹果手机系统的通话记录复制出来的电话号码之前已经添加过,现在可以重复添加,查了一下复制...

  • windows下vim中隐藏字符处理

    在windiws操作系统下,经常会出现很多隐藏字符,就像出现乱码一样。关于隐藏字符可以通过命令:help list...

  • python去除zwnbsp字符(零宽度空白字符)

    Q1:什么是ZWNBSP? A1:UTF-8有一个BOM(Byte Order Mark)的问题。 在Unicod...

  • 正则表达式:?= ?: ?!

    零宽度:表示只匹配位置,不匹配字符 栗子一: 分析:\B 或者 \b 匹配到的是一个位置,没有字符,\B:表示非单...

  • HTML文本溢出隐藏

    单行文本 通用 多行文本 适用于webkit内核,移动端 多行文本js隐藏 通用 一行 = 总宽度 / 单个字符宽...

  • Swift中计算字符串的宽高

    // 计算字符串的宽度,高度 letstring:String="swift中计算字符串的宽度和高度。swift中...

  • 零宽断言

    零宽度正预测先行断言 格式:(? = exp )解释: ? 是待处理的字符串 ?后面能匹配表达式 例子? 表达...

网友评论

      本文标题:关于零宽度隐藏字符\u200b|\u202d|\u202c

      本文链接:https://www.haomeiwen.com/subject/qffqjltx.html