javascript中expression的用法整理


Posted in Javascript onMay 13, 2014

小哥我最近在学习javaScript, 学到regular expression的时候见知识点有些杂乱,所以特别写篇博客做个总结。

定义

在javascript里定义reg exp有两种方法:

1) 用new exp : var exp1 = new exp("abc");

2) 直接在两个/中间放pattern: var exp2 = /abc/; //注意。。没有双引号哟, 加了就成string了

特殊字符

目测特殊字符和perl的是一样的。。直接拿来用就好

\d Digit characters
\w Alphanumeric characters (“word characters”)
\s Whitespace characters (space, tab, newline, and similar)
\D Characters that are not digits
\W Non-alphanumeric characters
\S Non-whitespace characters
. A period matches all characters except newlines
有个很简单的记的方法:

d = digit 所以是数字

w = word 所以是字母

s = space 所以是空格

所有大写全是反的。。

括号[]

在括号中放pattern 代表只要符合任意字符都为真。 (和java 或者 Perl都是一样一样的)

比如

console.log(/[01]/.test("023424")); // true console.log(/[01]/.test("13424")); // true 
console.log(/[01]/.test("23424")); // false

括号()

表示要符合括号里的全部才会为真

比如

console.log(/[01]/.test("013424")); // true console.log(/[01]/.test("13424")); // false 
console.log(/[01]/.test("230424")); // false 
console.log(/[01]/.test("230142401")); // true

Quantifiers

和java是一样一样一样的。。 这个表很好。。小哥我一直喜欢用

Greedy Reluctant Possessive Meaning
X? X?? X?+ X, once or not at all
X* X*? X*+ X, zero or more times
X+ X+? X++ X, one or more times
X{n} X{n}? X{n}+ X, exactly n times
X{n,} X{n,}? X{n,}+ X, at least n times
X{n,m} X{n,m}? X{n,m}+ X, at least n but not more thanm times

expression object functions

1) test 这个很简单,只用把要test的string放到test(...)里,这个function就会return true/false 代表 match/unmatch

2) exec, 这个function返还null如果没有找到match的string.. 如果找到了就会返还一个array. 这个里边包含按顺序match的string

3) String.replace(expression1, string1) 这个function把expression中match的部分换成string1, string1里可以用之前expression中的parenthesized group

,来替代其中的某个部分。 比如说"co-ol".replace(/[\w]+\-[\w]+/,"$2-$1"); //"ol-co" 一直可以用到$9

4)String.replace(expression, function) 这个是加强版,而且很强大, 可以通过function来定义任何你想要的output。具体用法不在这里一一列出,请参考

点击打开链接

动态生成reg expression
当你想要用在reg exp里的东西只有runtime才知道的时候,这个方法就可以适用
生成reg exp其实只需要用string 建好reg exp的样子, 再用Exp的constructor就可以。 (在文章开头的地方提到过)

例如:

var name = "dear" “oh, my dear”.replace(new Exp(name), "god"); // oh, my god

但是如果名字中有特殊字符可能会用在regular expression的时候, 往往上边的方法会出错。
所以, 在那种情况下,我们可以把input string的每一个字符的前边都加上反斜杠 比如:
var name = df[]vxv; 
var expName = name.replace("/[^/w/s]/g","\\$&"); 
"my name is df[]vxv".replace(new Exp(name), "Bob"); // my name is Bob
Javascript 相关文章推荐
jquery 插件学习(二)
Aug 06 Javascript
Js中的onblur和onfocus事件应用介绍
Aug 27 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
Jan 19 Javascript
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
详解使用webpack构建多页面应用
Dec 21 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
Jul 08 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
Nov 08 Javascript
Javascript中的解构赋值语法详解
Apr 02 Javascript
JS函数重载的解决方案
May 13 #Javascript
一个JS函数搞定网页标题(title)闪动效果
May 13 #Javascript
JS获得浏览器版本和操作系统版本的例子
May 13 #Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
May 13 #Javascript
js语法学习之判断一个对象是否为数组
May 13 #Javascript
js中定义一个变量并判断其是否为空的方法
May 13 #Javascript
jQuery 计算iframe 窗口大小的方法
May 13 #Javascript
You might like
php中数字0和空值的区别分析
2014/06/05 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
PHP 裁剪图片
2021/03/09 PHP
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python机器学习之决策树算法
2017/12/22 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
毕业生文员求职信
2013/11/03 职场文书
银行演讲稿范文
2014/01/03 职场文书
外联部演讲稿
2014/05/24 职场文书
2014年减负工作总结
2014/12/10 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
行政撤诉申请书
2015/05/18 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书