forked from wteam-xq/testDemo
-
Notifications
You must be signed in to change notification settings - Fork 1
/
regexp.html
76 lines (67 loc) · 3.27 KB
/
regexp.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
正则表达式使用
</title>
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
</head>
<body>
<h3>正则表达式使用</h3>
<script>
var str = '';
// 校验邮箱
str = '123@qq.com';
var reg_email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var reg_email2 = /\S+@\S+\.\S+/;
reg_email.test(str);
// 校验手机号
str = '56465';
var reg_mobile = /^1\d{10}$/.test(str);
var reg_mobile2 = /[0-9]{4,15}/.test(str);
// 校验浮点型数字
str = '452.23';
var reg_float = /^([1-9]\d*|(0|[1-9]\d*)\.\d*[0-9])$/.test(str);
// 校验字符串是否含有中文
str = '100万';
var reg_cn = /[\u4e00-\u9fa5]/.test(str);
// 非正则获取中文个数(考虑特殊字符、奇怪字符)
function checkChinaCount(value){
var i = 0, result = 0;
for ( var i = 0; i < value.length; i++){
if (value.charCodeAt(i) <= 0 || value.charCodeAt(i) > 128){
result ++ ;
}
}
return result;
}
// 给所有String对象添加trim方法
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
// 判断字符串是否符合IP地址
function testIP(str){
var arr = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(str);
if(arr==null) return false;
arr.shift();
for(i=1;i<arr.length;i++)if(String(Number(arr[i]))!=arr[i]||Number(arr[i])>255) return false;
return true;
}
// 用js实现一个电话号码提取的方法。
// 例如:" 1852145998 020-888-999845 测试 021 - 85421987, 19865754"
// 得到的结果应该是[1852145998, 020-888-999845 , 021 - 85421987, 19865754]
var str = ' 1852145998 020-888-999845 测试 021 - 85421987, 19865754';
var reg_no = /(\d{3}\s*-\s*?){0,2}\d{6,11}/g;
var _r = str.match(reg_no);
console.log(_r);
// match是返回所有匹配的字符串合成的数组,但是正则表达式必须指定全局g属性才能返回所有匹配,不指定g属性则会返回一个只有一个元素的数组。
// exec永远返回与第一个匹配相关的信息,其返回数组包括第一个匹配的字串,所有分组的反向引用。
// RegExp['$1'] 每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改。可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。
// https://msdn.microsoft.com/zh-cn/library/24th3sah(v=VS.94).aspx
var regArray = /(\w+)@(\w+)\.(\w+)/g.exec("Please send mail to george@contoso.com and someone@example.com. Thanks!"); // ["george@contoso.com", "george", "contoso", "com"]
console.log(RegExp['$1']);
</script>
</body>
</html>