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

  • 相关阅读:
    统计单词数 OpenJ_Bailian
    整数划分 NBUT
    高精度(x ,/, +, -, %)良心模板
    binary-tree-maximum-path-sum
    2080 特殊的质数肋骨 USACO (深度优先搜索)
    1413 权势二进制
    POJ 1258
    poj 3126
    hdu 1195
    POJ 3752
  • 原文地址:https://www.cnblogs.com/yzyh/p/15556811.html
Copyright © 2011-2022 走看看