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 相关文章推荐
js脚本学习 比较实用的基础
Sep 07 Javascript
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
判断脚本加载是否完成的方法
May 26 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
Jun 07 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
搭建element-ui的Vue前端工程操作实例
Feb 23 Javascript
VuePress 中如何增加用户登录功能
Nov 29 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 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中的array数组类型分析说明
2010/07/27 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
小程序实现多选框功能
2018/10/30 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
python剪切视频与合并视频的实现
2020/03/03 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
2013年员工自我评价范文
2013/12/27 职场文书
学生会离职感言
2014/02/11 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL