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第二个参数只考虑到了字符串式的替换,忽略了更强大的功能,支持回调函数,这样一行代码就可以解决任何想要置换的字符,可以说是相当强大!

  • 相关阅读:
    微信小程序开发---各代码文件简介
    LeetCode71. 简化路径
    LeetCode70. 爬楼梯
    LeetCode69. x 的平方根
    LeetCode68. 文本左右对齐
    LeetCode剑指 Offer 09. 用两个栈实现队列
    LeetCode67. 二进制求和
    LeetCode66. 加一
    LeetCode65. 有效数字
    LeetCode64. 最小路径和
  • 原文地址:https://www.cnblogs.com/yzyh/p/15556811.html
Copyright © 2011-2022 走看看