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 相关文章推荐
input的focus方法使用
Mar 13 Javascript
jQuery学习笔记之Helloworld
Dec 22 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
jQuery构造函数init参数分析
May 13 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
基于vue-ssr服务端渲染入门详解
Jan 08 Javascript
安装vue-cli的简易过程
May 22 Javascript
AngularJS ui-router刷新子页面路由的方法
Jul 23 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 Javascript
vue中实现动态生成二维码的方法
Feb 21 Javascript
js实现QQ邮箱邮件拖拽删除功能
Aug 27 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 17 Javascript
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与javascript的两种交互方式
2006/10/09 PHP
php 动态添加记录
2009/03/10 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
2015/12/13 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
python中pygame模块用法实例
2014/10/09 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python Cookie 读取和保存方法
2018/12/28 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
2019史上最全Database工程师题库
2015/12/06 面试题
供货协议书
2014/04/22 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
运动会开幕词
2015/01/28 职场文书
校园之声广播稿
2015/08/18 职场文书
导游词之千岛湖
2019/09/23 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
Java 在生活中的 10 大应用
2021/11/02 Java/Android
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
java版 简单三子棋游戏
2022/05/04 Java/Android