zoukankan      html  css  js  c++  java
  • 【Avalon】escape

    [uD800-uDBFF][uDC00-uDFFF]

    var rsurrogate = /[uD800-uDBFF][uDC00-uDFFF]/g
    var rnoalphanumeric = /([^#-~| |!])/g
    var escape = function(str) {
        //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 &lt
        return String(str).
                replace(/&/g, '&amp;').
                replace(rsurrogate, function(value) {
                    console.log('============')
                    console.log(value)
                    var hi = value.charCodeAt(0)
                    var low = value.charCodeAt(1)
                    return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';'
                }).
                replace(rnoalphanumeric, function(value) {
                    console.log('------------')
                    console.log(value)
                    return '&#' + value.charCodeAt(0) + ';'
                }).
                replace(/</g, '&lt;').
                replace(/>/g, '&gt;')
    }
    
    str = 'abcdefg123456789[aa]0中过<div>&copy;| !---</div>'
    console.log(str)
    console.log(escape(str))
    // abcdefg123456789[aa]0&#20013;&#36807;&lt;div&gt;&amp;copy;| !---&lt;/div&gt;
    
    var r = /([^#-~| |!])/g // 排除#-~  或 空格 或 ! 得到匹配中文
    var r1 = /([^#-~])/g // # -(to) ~
    
    console.log(r.test('12 ji'))
    
    //var rr = /[u4e00-u9fa5]/g
    //console.log(rr.test('12聚宽'))
  • 相关阅读:
    正则表达式---用户验证
    最短路 Dijkstra
    最短路 Dijkstra+堆优化
    LCIS(最长公共上升子序列)
    最小生成树 Kruskal
    网络流 最大流
    网络流 最小费用最大流
    树链剖分
    树状数组
    双重Hash
  • 原文地址:https://www.cnblogs.com/jzm17173/p/6183307.html
Copyright © 2011-2022 走看看