1 <script>2 *常用字符串操作* 3 var str= "you-1989-ga-13-li-85-li ";4 alert(str search(
1 <script> 2 /*常用字符串操作*/ 3 var str="you-1989-ga-13-li-85-li"; 4 //alert(str.search('aaa')); /*根据指定的子字符串,返回子字符串在父级中的开始位置。正常就返回所在的位置,否则返回-1*/ 5 //alert(str.charAt(1)); /*根据指定的位置,返回该位置上的字符。*/ 6 //alert(str.substring(1)); /*根据指定的起始位置,返回该位置上的子字符串(不包括结束位置),或者该位置以后所有的子字符串。*/ 7 //var arr=str.split('-'); /*根据指定的符号,返回根据该符号切分的数组。*/ 8 //alert(arr.length); 9 10 /*从字符串中找出所有的数字*/ 11 var arr=[]; 12 var tmp=''; 13 for(var i=0; i<str.length;i++){/* 为什么字符串最后的数字加加不到数组中去?因为最后都是数字不走else了,所以最后的数字没有机会加到数组中。在循环结束后,在执行一次else中的操作。*/ 14 if(str.charAt(i)>=0&&str.charAt(i)<=9) 15 { 16 tmp+=str.charAt(i); 17 } 18 else 19 { 20 if(tmp) 21 { 22 arr.push(tmp); 23 tmp=''; 24 25 } 26 } 27 } 28 if(tmp){ 29 arr.push(tmp); 30 } 31 /*用正则的方法匹配字符串中的所有数字。match的方法是用字符串.match去匹配正则。*/ 32 //alert(str.match(/\d+/g)); 33 34 /*正则对象*/ 35 //var re=new RegExp('G','i'); 36 //var ygl='yougali'; 37 //alert(ygl.search(re)); 38 39 /*在字符串中找出第一个数字*/ 40 var re=/\d+/g; //+量词:若干 41 //alert(str.search(re)); //当search配合正则使用时,只能返回匹配内容的位置。 42 //alert(str.match(re)); //如果想返回匹配的内容,就必须使用match匹配。 43 44 /*replace字符串替换,replace如果不结合正则使用,只能替换第一个字符。如果要是替换正则里面的内容,则要替换的全局内容就会被替换掉了。*/ 45 var re=/i/g; 46 //alert(str.replace(re,'A')); 47 48 /*敏感词过滤*/ 49 window.onload=function(){ 50 var oTxt1=document.getElementById('txt1'); 51 var oTxt2=document.getElementById('txt2'); 52 var oBtn=document.getElementById('btn1'); 53 54 oBtn.onclick=function(){ 55 //var re=/北京|百度|淘宝/g; /*敏感词过滤的正则*/ 56 //var re=/<.+>/g; /* 替换小说标签的正则 <尖括号之间一堆任意的字符>*/ 57 var re=/<[^<>]+>/g; /*不是尖括号之间的任意字符,而是尖括号中,除了尖括号以外的其他全部字符*/ 58 oTxt2.value=oTxt1.value.replace(re,'***'); 59 }; 60 61 var oTxt3=document.getElementById('txt3'); 62 var oBtn2=document.getElementById('btn2'); 63 oBtn2.onclick=function(){ 64 var re=/^\w+@[a-z0-9]+\.[a-z]+$/i; 65 if(re.test(oTxt3.value)){ /*正则的test方法用来检验字符串是否符合正则的规则 66 test字符串一部分符合要求,就认为全部都返回true。这是不合理的。 67 当^出现在[^0-9]中时表示排除,当出现在[]外部时表示行首(字符串开头), 68 $表示行尾巴。因此我们将这两个标识添加在正则的行首和行尾。正则中只能出现^$中间的内容。 69 */ 70 alert('是合法邮箱'); 71 }else{ 72 alert('邮箱不合法'); 73 } 74 }; 75 76 }; 77 78 /*正则中方括号的用法 79 [you] 作用相当于或,或y,或o,或u,例如:*/ 80 /*[you]-meili 81 y-meili 82 o-meili 83 u-meili*/ 84 var ygl="职位邮宝描述:1、负责淘宝店及淘宝商城的售前花宝、售后指导和服务工作"; 85 var re=/[邮花淘]宝/g; 86 //alert(ygl.match(re)); //match 返回匹配的内容 87 88 /*[]括号的第二种用法表示范围,例如 89 [a-z]表示a到z, [1-9]表示1到9*/ 90 91 var ygl='wo 2015 zhen 04 de 08 shi'; 92 //alert(ygl.match(/[0-9]+/g)); /* \d相当于[0-9]*/ 93 94 /*[]除了表示范围以外,第三种用法表示排除[^a-z0-9]:排除掉a-z 0-9*/ 95 96 /*常用的转义字符*/ 97 /*\d 代表数字 相当于[0-9] 98 \w 英文、数字、下划线 相当于[a-z0-9_] 99 \s 空白字符 包括空格、tab、其他不可打印的字符 100 . 代表任意字符 101 102 \D 表示除了[^0-9] 103 \W 表示除了[^a-z0-9_] 104 \S 非空白字符*/ 105 106 /*常用量词*/ 107 {n} /*正好出现n次*/ 108 /*电话号码的正则:[1-9]\d{7} 第一位是1-9开头的,后面7位可以是任意数字 */ 109 110 {n,m} /* 最少n次,最多m次 */ 111 /*QQ号的正则:[1-9]\d{4,10} 第一位是1-9开头,后面的4-10可以是0-9,QQ号的位数是5-11位*/ 112 113 {n, } /*最少n次,最多不限*/ 114 + 相当于{1,} /*最少1次,最多不限*/ 115 ? 相当于{0,1}/*最少0次,最多1次。可以有,可以没有*/ 116 /*固定电话的正则 0539-5503681-003 */ 117 (0\d{2-3}-)?[1-9]\d{7}(-\d{1,5}) /* 区号:第一位是0开头,后面的2-3位可以是0-9的数字,数字后面跟-,?表示可有可无, 118 后面的号码:第一位是1-9开头,后面的7位用0-9表示。后面的分号:-后面的1-5位,可以用0-9的数字表示 */ 119 * 相当于{0,}/* 可以没有,也可以有多个 */ 120 121 /* 用*找出字符串中的所有数字 */ 122 var ygl='you-1989-mei-2015-li-0408'; 123 alert(ygl.match(/\d*/g));/* 会把字符串表示成出现了0个数字 */ 124 125 /*邮箱校验*/ 126 /*邮箱的表示方法:英文 数字 下划线 @ 英文 数字 . 英文; 域名中不允许有下划线,.后面只能用英文,不能用数字 */ 127 </script>
<textarea rows="10" cols="40" id="txt1"></textarea><br/> <input type="button" value="过滤" id='btn1'/><br/> <textarea rows="10" cols="40" id="txt2"></textarea> <input type="text" id="txt3"/> <input type="button" value="校验" id="btn2"/>