js addDqmForPP给标签内属性值加上双引号的函数


Posted in Javascript onDecember 24, 2016

实现代码一:

给标签内属性值加上双引号

var addDqmForPP = function(shtml){
  return shtml.replace(/( [^\=]*\=)(\s?[^\"\s\>]*)/ig,function(a,b,c,d,e){return (c)?(new RegExp("<[^>]*"+c.replace(/(\^|\(|\)|\[|\]|\{|\}|\?|\-|\\|\/|\||\$)/g,'\\$1')+"[^>]*>","i").test(e))?b+'"'+c+'"':b+c:b});
};

完整测试代码

<textarea id="t" style="height:200px; width:300px;">
<UL class=list>
<LI class=feed_item><SPAN class=note>01/12/2008</SPAN>
<P><A title=GE公司推出“汪力和李邦”网络广告 href=http://www.genewscenter.com/{$content}\Detail.asp?ReleaseID=4886&NewsAreaID=2&changeCurrentLocale=5 _eventID="4">GE公司推出“汪力和李邦”网络广告</A></P></LI>
<LI class=feed_item><SPAN class=note>26/11/2008</SPAN>
<P><A title=GE石油天然气集团在中国创造新的快速安装记录 href="http://www.genewscenter.com/content/Detail.asp?ReleaseID=4879&NewsAreaID=2&changeCurrentLocale=5" _eventID="5">GE石油天然气集团在中国创造新的快速安装记录</A></P></LI></UL>
</textarea>

<script type="text/javascript">
var sa = '<a href=index.html>hello </a><input onlick=a(); typle="submit"/><input onlick=a(); value=ok typle="submit"/><span>a=8+4</span>';
var sb = document.getElementById('t').value;
var addDqmForPP = function(shtml){
  return shtml.replace(/( [^\=]*\=)(\s?[^\"\s\>]*)/ig,function(a,b,c,d,e){return (c)?(new RegExp("<[^>]*"+c.replace(/(\^|\(|\)|\[|\]|\{|\}|\?|\-|\\|\/|\||\$)/g,'\\$1')+"[^>]*>","i").test(e))?b+'"'+c+'"':b+c:b});
};
alert(addDqmForPP(sa));
alert(addDqmForPP(sb));
</script>

实现代码二:

给标签内属性值加上双引号标记变小写

核心代码

var partialXHTML = function (value) {
  return value.replace(/<(\/?[a-zA-Z]+\s*)((?:"[^"]*"|'[^']*'|(?!'|"|\/?>).)*)(\/?>)/g, function (l, $1, $2, $3) {
    return '<' + $1.toLowerCase() + $2.replace(/([^=]+)=(?:(")[^"]*"|(')[^']*'|((?:(?!\s|'|"|\/?>).)*))/g, function (l, $1, $2, $3, $4) {
      return ($2||$3) ? l : $1 + '="' + $4 + '"';
    }) + $3;
  });
};

完整代码

<textarea style="height:200px; width:300px;">
<UL class=list>
<LI class=feed_item><SPAN class=note>01/12/2008</SPAN>
<P><A title=GE公司推出“汪力和李邦”网络广告 href="http://www.genewscenter.com/content/Detail.asp?ReleaseID=4886&NewsAreaID=2&changeCurrentLocale=5" _eventID="4">GE公司推出“汪力和李邦”网络广告</A></P></LI>
<LI class=feed_item><SPAN class=note>26/11/2008</SPAN>
<P><A title=GE石油天然气集团在中国创造新的快速安装记录 href="http://www.genewscenter.com/content/Detail.asp?ReleaseID=4879&NewsAreaID=2&changeCurrentLocale=5" _eventID="5">GE石油天然气集团在中国创造新的快速安装记录</A></P></LI></UL>
</textarea>
<script type="text/javascript">
var partialXHTML = function (value) {
  return value.replace(/<(\/?[a-zA-Z]+\s*)((?:"[^"]*"|'[^']*'|(?!'|"|\/?>).)*)(\/?>)/g, function (l, $1, $2, $3) {
    return '<' + $1.toLowerCase() + $2.replace(/([^=]+)=(?:(")[^"]*"|(')[^']*'|((?:(?!\s|'|"|\/?>).)*))/g, function (l, $1, $2, $3, $4) {
      return ($2||$3) ? l : $1 + '="' + $4 + '"';
    }) + $3;
  });
};
var parse = function (t) {
  t.value = partialXHTML(t.value);
};
</script>
<input type="button" value="修正" onclick="parse(document.getElementsByTagName('textarea')[0])" />
Javascript 相关文章推荐
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
JavaScript数据结构与算法之集合(Set)
Jan 29 Javascript
JS中script标签defer和async属性的区别详解
Aug 12 Javascript
js格式化时间的简单实例
Nov 27 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
基于Vue实例生命周期(全面解析)
Aug 16 Javascript
在vue中使用vue-echarts-v3的实例代码
Sep 13 Javascript
vue实现div拖拽互换位置
Jul 29 Javascript
Vue 组件参数校验与非props特性的方法
Feb 12 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
Jul 20 Javascript
vue+elementui 实现新增和修改共用一个弹框的完整代码
Jun 08 Vue.js
Bootstrap php制作动态分页标签
Dec 23 #Javascript
前端JS面试中常见的算法问题总结
Dec 23 #Javascript
Bootstrap源码解读导航条(7)
Dec 23 #Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 #Javascript
浅谈jQuery操作类数组的工具方法
Dec 23 #Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 #Javascript
详解jQuery中的DOM操作
Dec 23 #Javascript
You might like
PHP用户指南-cookies部分
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php 数学运算验证码实现代码
2009/10/11 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
php简单实现快速排序的方法
2015/04/04 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
ECMAScript 基础知识
2007/06/29 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
VUE安装使用教程详解
2019/06/03 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
详解Django框架中用context来解析模板的方法
2015/07/20 Python
python实现自动发送报警监控邮件
2018/06/21 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
SQL Server笔试题
2012/01/10 面试题
教师自荐信
2013/12/10 职场文书
门诊手术室工作制度
2014/01/30 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle