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"/>