- -什么是正则表达式?
正则表达式又称为 ''规则表达式’,通常用来检索,替换那些符合某个模式的文本。
主要目的是:
给定一个正则表达式和和另一个字符串能够达到如下效果:
1.给定的字符串是否符合正则表达式的规定;
2.可以通过正则表达式,从字符串中获取我们想要的特定部分。
- -正则表达式的组成与一些实例(常用)
*元字符(拥有一些特殊含义的字符)
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和结束字符 |
\d | 查找数字 |
\D | 查找非数字字符 |
\w | 查找单词字符 |
\W | 查找非单词字符 |
\s | 匹配空白字符 |
\S | 匹配非空白字符 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
\uxxxx | 查找单个字符,除了换行和结束字符 |
*量词
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个n的字符串 |
n* | 匹配任何包含零个或多个n的字符串 |
? | 匹配任何包含零个或一个n的字符串 |
n{X} | 匹配包含X个n的序列的字符串 |
n{X,Y} | 匹配包含X至Y个n的序列的字符串 |
n{X} | 匹配包含至少X个n的序列的字符串 |
/^X Y$/ | 匹配以X开头 Y结尾的字符串 |
?=n | 匹配任何其后紧接指定字符串 n 的字符串 |
?!n | 匹配任何其后紧接非指定字符串 n 的字符串。 |
*中括号(查找某个范围内的字符)
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符 |
[^abc] | 查找任何不在方括号之间的字符 |
[A-z] | 查找任何从大写 A 到小写 z 的字符 |
[0-9] | 查找任何从 0 至 9 的数字 |
*修饰符
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配) |
m | 执行多行匹配 |
一些例题:
<script>
// 写一个函数,检查出例如:var str = “aaaaaaaaaaabbbbbbbbccccccccdddddddddffffffffff”
// 连续出现最多的字符,将这个字符和它出现的次数打印出来 用正则表达式的方式完成
function dyt(){
var str="ssdddddddddddddstttttttttttttttttss";//prompt("自行输入一串英文字符");提示框
var sum=0;
var arr=[];//存值
var ref=/(\w)\1+/g;
str.replace(ref,function(sstr,strs){//第一个参数是匹配到字符,第二个参数是匹配到字符的子字符()
if(sum<sstr.length){//判断换值
sum=sstr.length;
arr[0]=strs;
}
})
console.log(`出现最多的字符是${arr[0]} 重复了${sum}次`);
}
//将输入的数字 科学记数法 例子:1000000 -> 10,000,000 -->
function det() {
//上面这种使用数组和字符串API
// var number = prompt("输入一个数");
// var arr = number.split("");
// if ((arr.length % 3) != 0) {
// var cz = 3 - Math.floor((arr.length % 3));
// for (var i = 0; i < cz; i++) {
// arr.unshift("0");
// }
// for (var j = 3; j < arr.length; j = j + 4) {
// arr.splice(j, 0, ",");
// }
// number = arr.join("");
// number = number.replace(/^0*/, "");
// console.log(number);
// } else {
// for (var j = 3; j < arr.length; j = j + 4) {
// arr.splice(j, 0, ",");
// }
// number = arr.join("");
// console.log(number);
// }
//用正则
var str = "100000000";
console.log(str.replace(/(?=(\B)(\d{3})+$)/g,","));
}
// 将-后的首字母换成大写,并且去掉-,返回字符串
var names="my-name-sadasd";
names=names.replace(/-([a-z]{1})/g,function(namess,sname){
//这个是将选中的字符转换成Unicode码
// var bian=sname.charCodeAt()-32;
//将Unicode码在转换成字符
// String.fromCharCode(bian)
return sname.toUpperCase();
})
var arr=names.split("-");
names=arr.join("");
console.log(names);
//去掉字符串开始和结尾的数字
function tm(){
var num="123we12";
num=num.replace(/^\d*|\d&*/g,"");
console.log(num);
}
</script>