学习JS的第六天之字符串
其他学习笔记:点击前往
文章目录
前言
字符串的方法和正则表达式的方法
一、字符串(String)
1、创建一个字符串
var str = '内容';
console.log(str)
2、字符串(String)的方法
1、charAt(index):
返回指定位置的字符,index就是位置,从0开始。
2、substring(n,m)
返回n到m之间的所有字符,n和m都是下标。
如果不给m,就从n开始截取到字符串结束
3、substr(n,length)
截取字符串,从 n开始 截取length这么长。
如果不写length,就从n开始截取到字符串结束。
4、slice(n,m)
与substring用法一致。
5、indexOF(s)
查找 s 首次出现在字符串中的位置,
6、match(str)
查找字符串中特定的字符,如果找到了就返回这个字符。如果找不到就返回null。
7、replace(a,b)
用字符b替换字符a。
8、search(s)
用于检索字符串中指定字符的位置,没有找到返回 -1,
9、split(str)
以str作为切割符,将字符串切割为数组。
10、toLowerCase()
将英文字符串转为小写。
11、toUpperCase()
将英文字符串转为大写。
12、trim()
去掉字符串前后空格,但是无法去掉字符串中间空格。
3、字符串的length属性
str.length: 获取字符串的长度
二、正则表达式
1、 正则表达式的概念
使用特定的符号来描述字符串的方法
2、 作用
验证用户输入的信息
3、 创建正则表达式的写法
构造函数的方式
var pat = new RegExp('要匹配的字符串','修饰符');
自变量的写法
var pat = /要匹配的字符串/修饰符;
修饰符:
i:忽略大小写
g:全局查找(默认查找到第一个就会停止,使用该修饰符会匹配所有满足条件的)
m:多行匹配
4、 匹配规则:
\w 可以匹配一个组成单词的字符(字母,_,数字)
\W 匹配非单词字符
\d 匹配一个数子
\D 匹配非数字
\s 匹配空白符(空格、制表符、换行符)
\n 匹配一个换行符
. 匹配换行符以外的任意字符
\b 匹配单词边界,也就是单词和空格之间的位置,不匹配任何字符
[xyz] 匹配这个集合中任意一个字符
[^xyz]不匹配这个集合中任意一个
[a-z] 匹配26个字母任意一个小写字母
[0-9] 匹配0~9之间的任意一个数
[a-zA-Z] 匹配26个字母不区分大小写
^ 匹配以什么开头
$ 匹配以什么结尾
? 匹配前面的字符出现0次 或者1 次
* 匹配前面的字符出现0次或者多次
+ 匹配前面的字符出现1次或者多次
{n,m} 匹配 n 到 m 次
{n} 匹配 n 次
{n,} 匹配大于等于n次
x | y 匹配x或者y
5、 转义符号
比如说要匹配一个 . ,但是小圆点是有特殊含义的,不能直接写,就需要写为 \.
6、 正则方法
pat.test(str)
是否匹配成功,返回true 或者 false
pat.exec()
检索字符串中指定的值。返回一个数组,存放匹配的结果,如果没有匹配返回null
compile()
可以改变检索模式。
7、 支持正则表达式的字符串方法
search()
match()
replace()
split()
简单练习
1、写一个函数,参数为一个字符串,返回这个字符串的反向字符串。
function reverseStr(str) {
return str.split('').reverse().join('');
}
console.log(reverseStr('hello'));
2、替换掉字符串里的所有的空格。
var str = (" h e l l o")
function delSpace(str) {
var pat = /\s/g;
return str.replace(pat, '');
}
console.log(delSpace(' h e l l o'));
3、将以下字符串的每个单词的首字母转化为大写:‘i love javascript !’
function changeToUpper(str) {
var arr = str.split(' ');
for(var i = 0 ; i < arr.length; i++) {
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1);
}
return arr.join(' ');
}
console.log(changeToUpper('i love javascript !'));
4、计算这段数据的平均分:“小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76”。
var data = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
// 方法1
var pat1 = /\d{1,}/g
var arr1 = data.match(pat1);
var num = 0
for(var i = 0; i < arr1.length; i++) {
num += parseInt(arr1[i])
}
console.log(num/arr1.length);
// 方法2
var arr2 = data.split(';');
var num2 = 0;
for(var i = 0; i < arr2.length; i++) {
num2 += parseInt(arr2[i].substr(arr2[i].indexOf(':') + 1));
}
console.log(num2/arr2.length);
总结
熟练使用字符串的方法,熟记正则表达式的匹配规则,网上有很多可以直接拿来用的正则表达式。