什么是正则表达式?
也叫“规则表达式”,从名字上来看,就是通过一个序列表达某种规则。这种规则是对字符串进行操作,可以用于检索、替换文本。许多程序设计语言都支持利用正则表达式进行字符串操作。(英语:Regular Expression,在代码中常简写为regex、regexp或RE)
语法: /正则表达式主体/修饰符(可选)
两个方法:
search():参数可使用正则表达式,也可以直接使用字符串(字符串会先被转换成正则表达式)
var str = "Visit Runoob!";
var n = str.search(/Runoob/i);
var n = str.search("Runoob");
replace():参数可使用正则表达式,也可以直接使用字符串(字符串会先被转换成正则表达式)
var txt = str.replace(/microsoft/i,"Runoob");
var txt = str.replace("Microsoft","Runoob");
使用正则表达式和直接用字符串有什么区别吗?有的呀,正则表达式可以带修饰符,使搜索、替换更强大!
正则表达式对象的方法:
test():检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec():检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,该函数返回一个存放匹配结果的数组。如果未找到匹配,则返回值为 null。
练习题:
#1 JS 判断输入字符串是否为数字、字母、下划线组成: /^\w+$/ \w表示字母、数字、下划线
#2 JS 判断输入字符串是否全部为字母: /^[a-zA-Z]+$/
#3 JS 判断输入字符串是否全部为数:字 /^[0-9]+$/ 或 /^\d+$/
#4 /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/ 是什么意思?(敲黑板!!)
解析#4: /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/
为了更直观用颜色区分了范围,匹配符合蓝色字符串或绿色字符串
答案如:。。<ahddu>< #09azAZ----
/ /正则表达式的开始、结束
^匹配字符串开始
(?:pattern)非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分时很有用。
量词:+表示1个或多个,*表示任意个, .表示任意字符
\d表示任意一个数字,\w表示任意数字、字母或下划线,\s匹配任意空白字符
\D表示任意一个非数字,\W表示任意除数字、字母或下划线外字符,\S匹配任意非空白字符
[^x]表示取x反向范围的字符,如[^>]表示除>以外的任意字符
\表示转义字符,如 .已经表示了特殊意义,如果要匹配它就要用 \.
$匹配字符串结束
练后感:
做完#4感觉非常酸爽,通过查各种符号的含义之后,对正则表达式的阅读能力蹭蹭提升!百度百科中对正则表达式符号的解释还是非常详细的!给了我很多帮助。
https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin