`
ianylb
  • 浏览: 74417 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

前台Javascript转换特殊字符

阅读更多
/**
作者信息
name: yeliangbiao
email: ianylb@sina.com

此脚本用来转换特殊字符,如"&"转换成"&"
*/

//在正则表达式中有特殊意义的字符
var regSpecialChars = [ "^","$","(",")","[","]","{","}",".","?","+","*","|","\\"];
//HTML特殊字符集的Map
var specialCharsMap = {"&": "&", //必须放在第一个,先将&转换了,之后就不会影响到转换后生成的&
                    "#":"&#35",//必须放在第二个,先将&转换了,之后就不会影响到转换后生成的&
                    ">" : ">",
                    "<" : "&lt;",
                    "‘":"&lsquo",
                    "’":"&rsquo",
                    ",":"&sbquo",
                    "'":"&#39",
                    "\\":"&#92;",
                    "\"":"&ldquo;",
                    "!":"&#33",
                    "%":"&#37",
                    "~":"&#126",
                    "@":"&#64",
                    "=":"&#61",
                    "(":"&#40",
                    ")":"&#41",
                    "{":"&#123",
                    "}":"&#125",
                    "[":"&#91;",
                    "]":"&#93;",
                    "$":"&#36",
                    "?":"&#63",
                    "*":"&#42;",
                    "|":"&#124;",
                    "^":"&#94;",
                    ".":"&#46;",
                    "+":"&#43;",
                    "/":"&#47;",
                    " ":"&nbsp;"
                }; //特殊字符Map定义结束


/**将含有特殊字符的字符串进行转换,参数为元素的id */
function changeElementSpecialChars(elementId){
    var element = document.getElementById(elementId);
    var value = changeSpecialChars(element.value);
    element.value = value;
}

/**将含有特殊字符的字符串进行转换,参数为字符串*/
function changeSpecialChars(value) {
    if(value==null || value == "")
        return value;
    for(var key in specialCharsMap){
        var regex = keyToRegex(key);//有key得到相应的正则表达式
        value = value.replace(regex,specialCharsMap[key]);//根据正则表达式来替换相应的内容
    }
    return value;
}

/**对字符进行处理,如果是正则表达式中的特殊字符,则加上转义字符"\"
返回由参数 key 生成的正则表达式对象
*/
function keyToRegex(key){
    if(isRegexSpecialChar(key)){
        key="\\"+key;
    }
    var regex = new RegExp(key,"g");
    return regex;
}

/**判断字符是否是正则表达式中的特殊字符*/
function isRegexSpecialChar(character){
    var length = regSpecialChars.length;
    var ch;
    for(var index = 0; index < length; index++ ) {
        ch = regSpecialChars[index];
        if(character == ch) return true;
    }
    return false;
}
分享到:
评论

相关推荐

    js 页面传参数时 参数值含特殊字符的问题

    这对于包含中文、特殊符号的字符串特别有用,因为它可以确保这些字符在URL中被正确编码,避免引起解析错误。例如,中文字符 "爱" 在 `escape` 后会变成 `%E7%88%B1`。 在上述描述的场景中,当尝试传递的字符串是 `...

    javascript前端知识汇总

    10. **浏览器兼容性**:由于JavaScript的实现存在差异,开发者需要关注跨浏览器兼容性,通过工具如Babel进行代码转换,或者使用polyfill来提供对旧版浏览器的支持。 11. **调试技巧**:开发者工具是前端工程师的...

    aspx后台传递Json到前台的两种接收方法推荐

    同时,也可以使用JSON.stringify()将JavaScript对象转换为Json字符串。 在实践过程中,开发人员可以根据实际需求和场景选择合适的方法。例如,如果前后端配合较为紧密,且对性能要求不是特别高,可以选择第一种自动...

    javaScript高级编程

    - 字符串对象:包括字符串的创建、拼接、截取以及转换等操作。 - 日期对象:涉及到日期的创建、获取和设置日期时间值。 - 数学对象:提供了数学计算相关的属性和方法,如三角函数、随机数生成等。 - 数组对象:...

    C#前台js中汉字转化拼音首字母函数

    总的来说,`C#前台js中汉字转化拼音首字母函数`的核心在于利用JavaScript处理汉字与拼音的转换,通过引入`Chinese2PinYin.js`这样的库,我们可以方便地在前端实现这一功能,提高用户体验,尤其在需要根据拼音进行...

    前台js将JSP转换成PDF文件涉及的两个js插件.zip

    这个压缩包“前台js将JSP转换成PDF文件涉及的两个js插件.zip”提供了两个关键的JavaScript库,用于实现这一功能。下面将详细介绍这两个插件及其工作原理。 首先,`jsPdf.debug.js`是`jsPDF`库的调试版本。`jsPDF`是...

    json的基本传值方式(从前台到后台,再从后台到前台)

    在这个例子中,我们创建了一个`XMLHttpRequest`实例,设置请求方法为POST,内容类型为`application/json`,然后使用`JSON.stringify()`将JavaScript对象转换成JSON字符串并发送。 - **使用fetch API**: ```...

    WEB前台开发技术练习A.pdf

    10. 字符串和变量处理:如null、undefined、NaN、true、false等,它们是JavaScript中用到的特殊值或布尔值,以及字符串的操作方法。 11. 数据类型转换:如.toString(3)、.toFixed(3)等,这些方法用于将数字转换为...

    jqeury eval将字符串转换json的方法

    该方法使用了JavaScript的eval函数来将字符串转换成json对象。下面是对该方法的详细解释: 首先,在前台页面,使用了ajax请求来获取服务器端的数据。ajax请求的配置为:type为post,contentType为application/json...

    Extjs4前台前台grid导出excel

    // 将二进制字符串转换为ArrayBuffer function s2ab(s) { var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf); for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; ...

    前台js将table转为Excel表格下载.rar

    综上所述,"前台js将table转为Excel表格下载.rar"中的实现涉及到前端JavaScript技术,包括DOM操作、CSV格式转换、Blob对象以及创建下载链接等步骤,这些知识点对于开发具有数据导出功能的Web应用至关重要。

    前台ajax与后台json传递

    Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下,实现局部数据的更新,而Json(JavaScript Object Notation)则是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析...

    json字符串转table字符串

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于服务器与客户端之间的数据传输。它以文本形式存储和传递数据,易于人阅读和编写,同时也方便机器解析和生成。在Java中,处理JSON数据通常...

    iPlatUI 前台开发指南

    - **JS中字符串转数字运算规则**:掌握三种字符串转数字的方法,包括转换函数、强制类型转换及利用变量弱类型转换。 - **转换函数**:如parseInt()、parseFloat()等。 - **强制类型转换**:使用Number()或+号等。...

    ztree最简单的后台传前台例子

    FastJSON是阿里巴巴开源的一个高性能的JSON库,它可以将Java对象转换成JSON字符串,也可以将JSON内容转换成对应的Java对象。在本例中,FastJSON将被用来把后台获取的数据快速有效地转换为JSON格式,以便于ZTree解析...

    layui table设置前台过滤转义等方法

    在上述代码片段中,我们对`obj.username`的值进行了转义处理,将特殊字符转换为对应的HTML实体,从而避免潜在的跨站脚本攻击(XSS)问题。 当然,我们也可以使用JavaScript的内置函数`escape()`或`encodeURI()`来对...

    前台js对象在后台转化java对象的问题探讨

    总结来说,从前台JavaScript对象到后台Java对象的转换,是一个涉及数据序列化与反序列化的过程。在前端使用`JSON.stringify()`方法将对象转换为字符串,在后端利用第三方库将字符串转换为Java对象。这个转换过程必须...

    javaScript如何处理从java后台返回的list

    直接使用EL表达式,js把它识别成字符串了。不是我想要的啊。。网上搜了搜大家的解决方案…最好的当然是把List集合转成json格式传到界面上。这样js里面操作也简单,页面也没有影响。 解决: 将List&lt;String&gt; 转成json,...

    Json与前台交互demo

    在前端交互中,我们常常需要将后端返回的JSON数据转换为JavaScript对象,以便在页面上进行操作。例如,上述JSON可以通过`JSON.parse()`方法转化为JavaScript对象: ```javascript let data = JSON.parse(jsonString...

Global site tag (gtag.js) - Google Analytics