zoukankan      html  css  js  c++  java
  • replace理解

    先讲一个需求

    // 需要对这段代码图片链接中文进行unicode编码
    var str = '<style type="text/css">body{margin:0;padding:0;}</style><p><img src="https://scm-dam.oss-cn-shanghai.aliyuncs.com/sit/baozun/20211115/598631437/详情页1.png">呵呵</p><p><br></p><p><img src="https://scm-dam.oss-cn-shanghai.aliyuncs.com/sit/baozun/20211115/046122201/详情页2.png">嘿嘿</p>'
    

    思路一:利用正则匹配中文字符,利用replace 第二个参数为方法,接收匹配到的值,return 新值进行替换

    str = str.replace(/[\u4e00-\u9fa5]+/g, (value) => encodeURI(value))
    但这样会匹配到这段字符串里面所有的中文符号,并且转码,我们需要的是图片链接中文进行unicode编码
    

    思路二:先匹配出图片链接,再在匹配到的值里面匹配中文进行编码

    str = str.replace(/<img(.*?)">/g, (value) => value.replace(/[\u4e00-\u9fa5]+/g, (zh) => encodeURI(zh)))
    

    总结: 平时用replace第二个参数只考虑到了字符串式的替换,忽略了更强大的功能,支持回调函数,这样一行代码就可以解决任何想要置换的字符,可以说是相当强大!

  • 相关阅读:
    用react的ReactCSSTransitionGroup插件实现简单的弹幕动画
    composer安装yii2问题总结
    记阿里笔试经历
    JVM, JRE,JDK 的区别
    HTML
    Http协议
    操作系统和网络基础知识
    网络基础之网络协议
    计算机硬件知识
    计算机硬件历史
  • 原文地址:https://www.cnblogs.com/yzyh/p/15556811.html
Copyright © 2011-2022 走看看