javascript正则表达式-字符串对象的方法-属性-反转-判断字符串

作者: 鲁智深 分类: JAVASCRIPT 发布时间: 2015-12-15 13:58

正则表达式

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
//定义正则表达
//字面量方式
var reg = /121/;

//构造函数方式
/*语法结构 - new RegExp(pattern, attributes)
* pattern - 表示正则表达式的规则
* attributes - 表示修饰符*/
var reg1 = new RegExp();
console.log(typeof reg1);//object

//用户输入字符串
var str = '12345678932131233556w';
var reg1 = /234/;

/*
 //方法 - 验证 - 对象.test(string)
  RegExpObject.test(string)方法
  string必需,要检测的字符串。
 * 如果结果为true -> 表示当前字符串与正则表达式匹配
 * 如果结果为false -> 表示当前字符串与正则表达式不匹配
 */
console.log(reg1.test(str));//true

//[] - 表示匹配内容的集合0-9a-zA-Z
var reg2 = /[0-9a-zA-Z]/;
console.log(reg2.test(str));

//^ - 表示匹配开始的位置(就是以什么开始)
var reg3 = /^[0-9]/;
console.log(reg3.test(str));

//$ - 表示匹配结束的位置(就是以什么结束)
var reg4 = /[0-9]$/;
console.log(reg4.test(str));

/*
{n,m} - 表示匹配内容的重复次数
* n - 表示重复次数的下限
* m - 表示重复次数的上限
*/
var str1 = '122225';
var reg5 = /[0-9]{1,5}$/;
console.log(reg5.test(str1));

// 必须是数字,并且长度在 4-6 之间
var str2 = '12222';
var reg6 = /^[0-9]{4,6}$/;
console.log(reg6.test(str2));

// 匹配数字、字母,并且长度在 6-12 之间
var str3 = '122242';
var reg7 = /^[0-9A-Ba-b]{6,12}$/;
console.log(reg7.test(str3));

字符串对象的方法

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
var str = '321312312312';
/*
 search(regexp)方法
 * 作用 - 检索指定字符串中是否包含指定内容
 * 参数
 * string - 指定检索的文本内容
 * regexp - 指定检索匹配指定正则表达式的文本内容
 * 返回值
 * 如果包含,返回匹配的第一个字母的索引值(位置)
 * 如果不包含,返回 -1
 */
console.log(str.search(/123/));//4
console.log(str.search(123));//4

/*
 match()方法
 * 作用 - 指定字符串匹配指定文本内容
 * 参数
 * string
 * regexp
 * 返回值
 * 返回数组 - 1.匹配的内容;2.匹配内容第一个的索引值(位置);3.当前字符串
 */
console.log(str.match(123));//[ '123', index: 4, input: '321312312312' ]

/*
 replace(regexp,replacement)方法
 * 作用 - 使用指定内容替代正则表达式匹配的内容
 * 参数
 * regexp - 用于匹配当前字符串中符合正则表达式规则的内容
 * replacement - 用于替代的内容
 * 返回值 - 替换之后的结果
 * 注意 - 不影响原本字符串的内容
 */
console.log(str.replace(/123/,'dsada'));//3213dsada12312
console.log('-------------分割线----------------');
/*
 charAt(index)方法
 * 作用 - 根据index位置返回指定字符串中的字符内容
 * 参数
 * index - 表示字符串中的指定位置
 * 返回值 - 指定index位置对应的字符
 */
console.log(str.charAt(3));
// charCodeAt()方法 -> 返回Unicode编码
console.log(str.charCodeAt(3));
console.log('-------------分割线----------------');
/*
 stringObject.indexOf(searchvalue,fromindex)方法
 * 作用 - 可返回某个指定的字符串值在字符串中首次出现的位置
 * 参数
     * searchvalue - 规定需检索的字符串值
     * fromindex - 规定在字符串中开始检索的位置
 */
console.log(str.indexOf(1));//2,下标为2
console.log(str.indexOf(1,8));//10下标为10
console.log(str.lastIndexOf(1));//从后开始搜索
console.log('-------------分割线----------------');
/*
 slice(start,end)
 * 作用 - 从指定字符串中截取指定位置的子字符串
 * 参数
 * start - 表示开始截取的位置
 * end - 表示结束截取的位置(不包含)
 * 如果默认省略,表示截取到字符串的最后
 */
console.log(str.slice(0,2));//32
console.log(str.slice(0));
console.log(str.slice(-2,-1));
console.log('-------------分割线----------------');
/*
 substr(start,length)方法
 * 作用 - 从指定字符串截取指定位置的指定长度的子字符串
 * 参数
 * start - 表示开始截取的位置
 * length - 表示截取的长度
 * 注意 - 如果设定长度超过字符串剩余字符的个数时,截取到字符串的最后面
 * 如果截取的长度省略的话,自动截取到字符串的最后面
 */
console.log(str.substr(1,5));
console.log('-------------分割线----------------');
/*
 substring(start,end)方法
 * 作用 - 从指定字符串中截取指定开始和结束位置的子字符串
 * 参数
 * start - (不能是负整数)表示截取的开始位置
 * end - (不能是负整数)表示截取的结束位置
 */
console.log(str.substring(1,4));//最后的一个位置不包括
console.log('-------------分割线----------------');

/*
    stringObject.split(separator,howmany)
        split() 方法用于把一个字符串分割成字符串数组。
        separator   必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
        howmany该参数可指定返回的数组的最大长度。
*/
var str = new String('2 1 1 3 2 1 3 3 大鹏 1');
console.log(str.split(' '));//根据空格分割
//var arr = str.split(',');根据逗号分割
//var arr = str.split(';');根据分号分割

var str = '12345';
var arr = str.split('');//直接分割
console.log(arr);// [ '1', '2', '3', '4', '5' ]
//测试中文
var str  = '大鹏手速快男18岁';
console.log(str.split(''));//[ '大', '鹏', '手', '速', '快', '男', '1', '8', '岁' ]
console.log('-------------分割线----------------');

字符串的属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var str = new String('大鹏的属性是男')
// length属性 - 获取当前字符串的字符个数
console.log(str.length);
console.log('-------------分割线----------------');
// for遍历循环
for(var i= 0 ; i<str.length; i++){
    console.log(str[i]);
}
console.log('-------------分割线----------------');
//for...in
for(var i in str){
    console.log(str[i]);
}
console.log('-------------分割线----------------');
// String和Array有没有关系?
console.log(str instanceof Array);//false

反转字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var str = new String('123456789');
//先分割转成数组
var arr = str.split('');
console.log(arr);

//数组对象进行排序
var arr1 = arr.reverse();
console.log(arr1);

//转成格式
var str1 = new String(arr1);//str1 = arr1.toString()
console.log(str1);

//替代逗号
var  str2= str1.replace(/,/g,'');
console.log(str2);

判断是否包含指定字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var str = new String('我是大鹏手速快的,男性,python程序员,单身20多年的有的技能的!!!');
var str1 = '大鹏';
// 判断方法一
console.log(str.search(str1));//输出非-1就是存在

//判断方法二
console.log(str.indexOf(str1));//输出非-1就是存在

//截取字符串方法
var str3 = str.substr(str.indexOf(str1),str1.length);
if(str3 === str1){
    console.log('包含');
}else{
    console.log('不包含');
}

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注