`

分享原生JavaScript技巧大收集(81~90)

阅读更多

文章来源:jquery教程 - http://www.jq-school.com/Show.aspx?id=312

原生JavaScript技巧大收集(81~90)这篇文章要感谢jquery学堂1群的网友湖北-Script提供了一些实用的代码片段,希望网友们有也可以分享出来。。。
81、原生JavaScript用正则表达式提取页面代码中所有网址

var aa = document.documentElement.outerHTML.match(/(url\(|src=|href=)[\"\']*([^\"\'\(\)\<\>\[\] ]+)[\"\'\)]*|(http:\/\/[\w\-\.]+[^\"\'\(\)\<\>\[\] ]+)/ig).join("\r\n").replace(/^(src=|href=|url\()[\"\']*|[\"\'\>\) ]*$/igm,"");
alert(aa)


82、原生JavaScript用正则表达式清除相同的数组(低效率)

Array.prototype.unique=function(){
	return this.reverse().join(",").match(/([^,]+)(?!.*\1)/ig).reverse();
}


83、原生JavaScript用正则表达式清除相同的数组(高效率)

String.prototype.unique=function(){
	var x=this.split(/[\r\n]+/);
	var y='';
	for(var i=0;i<x.length;i++){
		if(!new RegExp("^"+x[i].replace(/([^\w])/ig,"\\$1")+"$","igm").test(y)){
			y+=x[i]+"\r\n"
		}
	}
	return y
}


84、原生JavaScript用正则表达式按字母排序,对每行进行数组排序

function SetSort(){
	var text=K1.value.split(/[\r\n]/).sort().join("\r\n");//顺序
	var test=K1.value.split(/[\r\n]/).sort().reverse().join("\r\n");//反序
	K1.value=K1.value!=text?text:test;
}


85、原生JavaScript字符串反序

function IsReverse(text){
	return text.split('').reverse().join('');
}


86、原生JavaScript用正则表达式清除html代码中的脚本

function clear_script(){
  K1.value=K1.value.replace(/<script.*?>[\s\S]*?<\/script>|\s+on[a-zA-Z]{3,16}\s?=\s?"[\s\S]*?"|\s+on[a-zA-Z]{3,16}\s?=\s?'[\s\S]*?'|\s+on[a-zA-Z]{3,16}\s?=[^ >]+/ig,"");
}


87、原生JavaScript动态执行JavaScript脚本

function javascript(){
	try{
	  eval(K1.value);
	}catch(e){
		alert(e.message);
	}
}


88、原生JavaScript动态执行VBScript脚本

function vbscript(){
	try{
		var script=document.getElementById("K1").value;
		if(script.trim()=="")return;
		window.execScript('On Error Resume Next \n'+script+'\n If Err.Number<>0 Then \n MsgBox "请输入正确的VBScript脚本!",48,"脚本错误!" \n End If',"vbscript")
	}catch(e){
		alert(e.message);
	}
}


89、原生JavaScript实现金额大写转换函数

function transform(tranvalue) {
  try {
    var i = 1;
    var dw2 = new Array("", "万", "亿"); //大单位
    var dw1 = new Array("拾", "佰", "仟"); //小单位
    var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
    //以下是小写转换成大写显示在合计大写的文本框中     
    //分离整数与小数
    var source = splits(tranvalue);
    var num = source[0];
    var dig = source[1];
    //转换整数部分
    var k1 = 0; //计小单位
    var k2 = 0; //计大单位
    var sum = 0;
    var str = "";
    var len = source[0].length; //整数的长度
    for (i = 1; i <= len; i++) {
      var n = source[0].charAt(len - i); //取得某个位数上的数字
      var bn = 0;
      if (len - i - 1 >= 0) {
        bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
      }
      sum = sum + Number(n);
      if (sum != 0) {
        str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
        if (n == '0') sum = 0;
      }
      if (len - i - 1 >= 0) { //在数字范围内
        if (k1 != 3) { //加小单位
          if (bn != 0) {
            str = dw1[k1].concat(str);
          }
          k1++;
        } else { //不加小单位,加大单位
          k1 = 0;
          var temp = str.charAt(0);
          if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
          str = str.substr(1, str.length - 1);
          str = dw2[k2].concat(str);
          sum = 0;
        }
      }
      if (k1 == 3) //小单位到千则大单位进一
      {
        k2++;
      }
    }
    //转换小数部分
    var strdig = "";
    if (dig != "") {
      var n = dig.charAt(0);
      if (n != 0) {
        strdig += dw[Number(n)] + "角"; //加数字
      }
      var n = dig.charAt(1);
      if (n != 0) {
        strdig += dw[Number(n)] + "分"; //加数字
      }
    }
    str += "元" + strdig;
  } catch(e) {
    return "0元";
  }
  return str;
}
//拆分整数与小数
function splits(tranvalue) {
  var value = new Array('', '');
  temp = tranvalue.split(".");
  for (var i = 0; i < temp.length; i++) {
    value[i] = temp[i];
  }
  return value;
}


90、原生JavaScript常用的正则表达式大收集

匹配中文字符的正则表达式: [\u4e00-\u9fa5] 
匹配双字节字符(包括汉字在内):[^\x00-\xff] 
匹配空行的正则表达式:\n[\s| ]*\r 
匹配 HTML 标记的正则表达式:<(.*)>.*<\/\1>|<(.*) \/>
匹配首尾空格的正则表达式:(^\s*)|(\s*$) 
匹配 IP 地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
匹配 Email 地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址 URL 的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
sql 语句:^(select|drop|delete|create|update|insert).*$ 
非负整数:^\d+$ 
正整数:^[0-9]*[1-9][0-9]*$ 
非正整数:^((-\d+)|(0+))$ 
负整数:^-[0-9]*[1-9][0-9]*$ 
整数:^-?\d+$ 
非负浮点数:^\d+(\.\d+)?$ 
正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 
英文字符串:^[A-Za-z]+$ 
英文大写串:^[A-Z]+$ 
英文小写串:^[a-z]+$ 
英文字符数字串:^[A-Za-z0-9]+$ 
英数字加下划线串:^\w+$ 
E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 
URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ 
邮政编码:^[1-9]\d{5}$ 
电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$ 
手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ 
双字节字符(包括汉字在内):^\x00-\xff 
匹配首尾空格:(^\s*)|(\s*$)
匹配 HTML 标记:<(.*)>.*<\/\1>|<(.*) \/> 
匹配空行:\n[\s| ]*\r 
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 
提取信息中的 IP 地址:(\d+)\.(\d+)\.(\d+)\.(\d+) 
提取信息中的中国手机号码:(86)*0*13\d{9} 
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 
提取信息中的中国邮政编码:[1-9]{1}(\d+){5} 
提取信息中的浮点数(即小数):(-?\d*)\.?\d+ 
提取信息中的任何数字 :(-?\d*)(\.\d+)? 
IP:(\d+)\.(\d+)\.(\d+)\.(\d+) 
电话区号:^0\d{2,3}$
腾讯 QQ 号:^[1-9]*[1-9][0-9]*$ 
帐号(字母开头,允许 5-16 字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$

 

分享到:
评论

相关推荐

    原生JavaScript100例

    原生JavaScript100例

    基于原生JavaScript实现的扫雷小游戏.zip

    基于原生JavaScript实现的扫雷小游戏 基于原生JavaScript实现的扫雷小游戏 基于原生JavaScript实现的扫雷小游戏 基于原生JavaScript实现的扫雷小游戏 基于原生JavaScript实现的扫雷小游戏 基于原生JavaScript实现的...

    原生JavaScript飞机大战

    《原生JavaScript飞机大战》是一款基于JavaScript开发的经典小游戏,它为初学者提供了一个良好的实践平台,帮助提升JavaScript编程技能。这款游戏虽然功能相对简单,但涵盖了基础的编程概念和技巧,对于学习...

    分享10个原生JavaScript技巧

    标题中提到的“分享10个原生JavaScript技巧”,指的是文章将介绍JavaScript编程中十种有用的技巧,这些技巧通常是编程者在进行项目开发时常用到的,有助于提升开发效率或代码质量。原生JavaScript指的是不依赖任何第...

    原生javascript小练习,各种属性的用法

    在原生JavaScript的世界里,掌握各种属性的用法是提升编程技能的关键。在这个小练习中,我们将探讨如何利用JavaScript实现动画效果、创建轮播图以及利用页面存储属性等实际应用场景。下面,我们将深入讨论这些知识点...

    原生Javascript开发让你的表单亮起来

    在网页设计中,表单是不可或缺的元素,用于收集用户数据。原生JavaScript开发能帮助我们更好地控制和美化这些表单,使其更具交互性和吸引力。本文将深入探讨如何利用JavaScript来提升表单的用户体验,使其“亮起来”...

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    90、原生JavaScript常用的正则表达式大收集 91、原生JavaScript实现窗体改变事件resize的操作(兼容所以的浏览器) 92、原生JavaScript用正则清除空格分左右 93、原生JavaScript判断变量是否空值 94、原生JavaScript...

    基于原生JavaScript完成的网页端2048游戏,适配移动端,绑定键盘和鼠标滑动事件.zip

    基于原生JavaScript完成的网页端2048游戏,适配移动端,绑定键盘和鼠标滑动事件 基于原生JavaScript完成的网页端2048游戏,适配移动端,绑定键盘和鼠标滑动事件 基于原生JavaScript完成的网页端2048游戏,适配移动端...

    打飞机小游戏原生javascript版

    《打飞机小游戏原生JavaScript版》是一款基于HTML5技术开发的、模仿微信内置经典小游戏“打飞机”的在线娱乐项目。这款游戏充分利用了JavaScript语言的强大功能,实现了在PC端运行的轻量级互动体验,旨在为玩家提供...

    原生javascript页面图片懒加载代码

    原生javascript页面图片懒加载效果

    原生javascript实现ajax 发送post请求

    原生javascript实现ajax发送pos请求,这样可以脱离jquery框架,

    JavaScript原生拼图游戏

    JavaScript原生拼图游戏是一种基于Web的互动娱乐项目,它利用HTML、JavaScript和CSS这三种核心技术来构建。在这个游戏中,用户可以通过移动拼图块来重组一幅图像,游戏提供了简单、中等和困难三种不同的难度等级,...

    2048小游戏 - 原生JavaScript实现

    《2048小游戏 - 原生JavaScript实现》 2048是一款风靡全球的数字拼图游戏,由19岁的意大利开发者Gabriele Cirulli在2014年创造。这款游戏的目标是通过合并相同数字的方块,最终达到2048这个数字。原生JavaScript...

    jquery 库与原生javascript 常用方法

    - **体积**: jQuery库比原生JavaScript代码大,对于小项目可能增加加载时间。但可以通过使用精简版的jQuery或模块化工具来解决。 ### 结合使用 在实际开发中,开发者通常会根据需求结合使用jQuery和原生JavaScript...

    原生JavaScript轮播图特效.zip

    原生JavaScript轮播图特效

    一种基于原生JavaScript的焦点轮播图简易实现.pdf

    "一种基于原生JavaScript的焦点轮播图简易实现" 本文主要讲述了基于原生JavaScript的焦点轮播图简易实现方法,该方法可以简化轮播图的实现过程,不需要使用第三方框架和插件,使得JavaScript初学者也可以轻松实现...

    原生javascript实现的3D轮播动画

    在这个场景中,我们关注的是如何使用原生JavaScript实现一个3D轮播动画。3D轮播动画是一种吸引用户注意力并展示多张图片或内容的有效方式,通常用于网站的首页或产品展示区域。 首先,我们要理解3D轮播动画的核心...

    原生JavaScript在网页实现类似excel.rar

    在网页上实现类似Excel的功能,原生JavaScript是一个常见的选择,因为它是所有浏览器都支持的基础脚本语言,无需依赖外部库。下面将详细讲解如何利用原生JavaScript实现这一目标,以及可能涉及的技术点。 首先,...

Global site tag (gtag.js) - Google Analytics