注意:只是简述,对正则对象的了解目前还不是很深刻,日后详细了解了再来修改。
正文:
正则对象
首先,我们要了解一下什么是正则对象:
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
1、RegExp对象的创建方式
RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
创建方式:
var reg = new RegExp(“表达式”); (开发中基本不用)
var reg(变量名) = /^表达式$/ 直接量(开发中常用)
直接量中存在边界,即^代表开始,&代表结束
所谓直接量(literal),就是程序中直接使用的数据值。
直接量方式的正则是对象,不是字符串,不要用引号。
2、test方法 注意是test 而不是text
正则对象.test(string); 用来检验字符串是否匹配正则。
全部字符匹配返回true,有字符不匹配返回false
3、正则对象使用注意事项。
直接量方式,如果一个字符不符合正则要求,就返回false,只有全部满足,才会返回true。
例如:
<script type="text/javascript">
var reg=/^xjmwan$/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
字符串xjmwan1314中含有对象xjmwan但是多出了1314,所以返回了false,这也是直接量方式适用于表单提交的优点,例如数据库中存储的密码是xjmwan,而当你输入xjmwan1314时很明显不是密码,返回false
而普通方式:
<script type="text/javascript">
var reg=/xjmwan/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
普通方式的对象包含在字符串xjmwan1314中,所以返回了true,普通方式适用于检索,字符串xjmwan1314中包含xjmwan所以检索出来了返回false,此时要注意,xjmwan对象是一个整体,相当于一个“字符”。
而改动一下正则对象的普通方式:
<script type="text/javascript">
var reg=/xjmwan9/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
字符串中并不包含整体xjmwan9,所以普通方式返回了false。
再次更改正则对象的普通方式:
<script type="text/javascript">
var reg=/xjmwan || 8/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
字符串中不包含9但是包含xjmwan,所以返回了true。
由此可见:普通方式和直接量方式的区别是没有了^ $,普通方式,只要字符串中含有全部对象或者对象中的一个,就返回true。如果全部不包含,就返回false。
即:
/^表达式$/ 只要有无法成立的正则字符存在,即为false。
全部符合才为true
(检查严格,眼睛里揉不得沙子)
适用于表单校验
/表达式/ 只要有成立正则的字符存在,即为true。(只要字符串中含有全部对象或者对象中的一个,就返回true。如果全部不包含,就返回false。)
(检查不严格,懒人思想)
适用于字符串查找、替换。
来源:https://www.cnblogs.com/wind-and-sky/p/12253329.html