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 相关文章推荐
javascript form 验证函数 弹出对话框形式
Jun 23 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
重写javascript中window.confirm的行为
Oct 21 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
适用于手机端的jQuery图片滑块动画
Dec 09 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
Dec 12 Javascript
react-router JS 控制路由跳转实例
Jun 15 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
微信小程序实现商城倒计时
Nov 01 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
Dec 08 Javascript
小程序实现密码输入框
Nov 16 Javascript
LayUI+Shiro实现动态菜单并记住菜单收展的示例
May 06 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代码包装修正版
2008/03/15 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP 代码规范小结
2012/03/08 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
基于jquery的表格排序
2010/09/11 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
基于python if 判断选择结构的实例详解
2019/05/06 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
python从PDF中提取数据的示例
2020/10/30 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
放飞蜻蜓反思
2014/02/05 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
工作收入证明模板
2014/10/10 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
驻村工作简报
2015/07/20 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
对讲机的最大通讯距离是多少
2022/02/18 无线电