JS中正则几个概念问题
2011-06-24 16:40
357 查看
正向预查:
先上一个全地球通用的实例:
>>> "windows98".match(/windows(?=98|2000)/)
[
"windows"
]
个人认为他是来匹配windows右面
是不是98或者2000的,记住是右边,我试了几个例子,貌似这个东西还不能单独使用((?=pantiner),如果单独一个这个,如果有这个单词就会出现空格,莫有就会null),只能结合左边来验证右边是否是我需要去匹配的。我们只要记住这个/str(?=pantiner)/的意思是判断str的右边是否是pantiner是就匹配,但括号里的东西不能作为外面的$1-$N使用,却可以作为里面的/1-/N使用。只有这个?=才会去判断右边(不管所写在左边还是右边,都会结合左边去判断是否右边有pantiner,如果(?=pantiner)左边没有东西就会默认以为左边是空来去匹配,如果有这个pantiner就是返回[""]否则为null),其他都没有这个方向感。
负向预查
>>> "windows 98".match(/windows (?!2004)/)
[
"windows "
]
这个就很随意,这个的意思就是说来判断非pantiner,方向取决于所写,不绝对。和?=的联系是都不存储结果。他和正向预查的还有个相同点,就是pantner不会返回。
非获取匹配
>>> "windows 98".match(/windows (?:98)/)
[
"windows 98"
]
正如其名,他不会去存储结构,和?=有点形似的是他们都是去扑捉是pantiner的,他没有方向感和?!一样写到左边就是判断左边,写到右边就判断右边。
在正则里面我们通常用/1-/n来获取和括号内的值一样的匹配,包括我们上面的各种捕获。
而在正则外面我们用$1-$n来获取正则的匹配情况,这里不包括我们上面的各种捕获,值得注意的是每次我们的test,match,exec等正则的匹配都会改变RegExp的值。
EX:
>>> /(/d+)>/.exec("1>") RegExp.$1
"1"
>>> /(/d+)>/.exec("2>") RegExp.$1
"2"
先上一个全地球通用的实例:
>>> "windows98".match(/windows(?=98|2000)/)
[
"windows"
]
个人认为他是来匹配windows右面
是不是98或者2000的,记住是右边,我试了几个例子,貌似这个东西还不能单独使用((?=pantiner),如果单独一个这个,如果有这个单词就会出现空格,莫有就会null),只能结合左边来验证右边是否是我需要去匹配的。我们只要记住这个/str(?=pantiner)/的意思是判断str的右边是否是pantiner是就匹配,但括号里的东西不能作为外面的$1-$N使用,却可以作为里面的/1-/N使用。只有这个?=才会去判断右边(不管所写在左边还是右边,都会结合左边去判断是否右边有pantiner,如果(?=pantiner)左边没有东西就会默认以为左边是空来去匹配,如果有这个pantiner就是返回[""]否则为null),其他都没有这个方向感。
负向预查
>>> "windows 98".match(/windows (?!2004)/)
[
"windows "
]
这个就很随意,这个的意思就是说来判断非pantiner,方向取决于所写,不绝对。和?=的联系是都不存储结果。他和正向预查的还有个相同点,就是pantner不会返回。
非获取匹配
>>> "windows 98".match(/windows (?:98)/)
[
"windows 98"
]
正如其名,他不会去存储结构,和?=有点形似的是他们都是去扑捉是pantiner的,他没有方向感和?!一样写到左边就是判断左边,写到右边就判断右边。
在正则里面我们通常用/1-/n来获取和括号内的值一样的匹配,包括我们上面的各种捕获。
而在正则外面我们用$1-$n来获取正则的匹配情况,这里不包括我们上面的各种捕获,值得注意的是每次我们的test,match,exec等正则的匹配都会改变RegExp的值。
EX:
>>> /(/d+)>/.exec("1>") RegExp.$1
"1"
>>> /(/d+)>/.exec("2>") RegExp.$1
"2"
相关文章推荐
- 常见的几个angular.js的问题
- JS和jquery的几个令人迷惑的问题之五-类和模块
- Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
- 使用prototype.js 的时候应该特别注意的几个问题.
- JS常见的几个问题
- 2014第8周一JS正则小问题
- JS正则表达式基本概念
- JS 正则表达式用法(适用于没有学过正则表达式的同学 或者 忘记了某个概念需要查阅的同学)
- 几个问题(三)--------线程安全的概念,实现线程安全的几种方法
- ie不兼容的几个js问题及解决办法
- js中一维数组和二位数组中的几个问题解释
- SAP R/3>FI方面的几个概念及关系问题
- JS正则分隔字符时的一个问题
- 几个概念问题- about RMAN backup
- js正则表达式test方法的问题
- jar包概念,js代码加载问题
- 抛砖引玉: 正则的几个基本概念
- js的正则表达式编程,悬赏解决下面的问题
- 几个优秀的js框架的license问题,付费,版权,侵权(extj,jquery,YUI,coolite)
- js中一维数组和二位数组中的几个问题示例说明