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 获取对象 基本选择与层级
May 31 Javascript
JavaScript中“基本类型”之争小结
Jan 03 Javascript
JavaScript中获取样式的原生方法小结
Oct 08 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
Js实现简单的小球运动特效
Feb 18 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
Mar 25 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
Mar 25 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
详解react使用react-bootstrap当轮子造车
Aug 15 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
May 23 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开发入门教程之面向对象
2006/12/05 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
Python操作json数据的一个简单例子
2014/04/17 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
工作交流会欢迎词
2014/01/12 职场文书
维修工先进事迹
2014/05/29 职场文书
自查自纠工作总结
2014/10/15 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
公司保洁员管理制度
2015/08/04 职场文书
Python列表的索引与切片
2022/04/07 Python