论坛首页 Web前端技术论坛

JavaScript内核系列 第6章 正则表达式

浏览 12869 次
精华帖 (13) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-04-28  
我觉得最好加上一些自己的心得体会,这些基本的内容的话还比不上那本大犀牛
0 请登录后投票
   发表时间:2010-04-28  
satanest 写道
我觉得最好加上一些自己的心得体会,这些基本的内容的话还比不上那本大犀牛

怎么说呢,在客观与主观之间的选择比较难。为了更客观一点,我很少在文章中加入主观的东西,总觉得这样会影响内容的可靠性,打个比方:“我觉得这个问题的原因是这么回事儿:XXX”,但是可能这个问题就不是这么回事儿,呵呵。所以,我尽量保证每个例子,每个特性都给出比较客观的证据。

当然,可能个人的喜好不尽相同,有的人确实喜欢看诸如“大话XX系列”,“白话XX系列”,我个人是极其反感这类的文章,通俗性有了,但是失之于严谨性。

心得体会之类的我尽量放在“前言”,“概述”,“总结”之类的地方,不会放在主要内容中,谢谢你的建议。
0 请登录后投票
   发表时间:2010-04-28  
如果真的需要的话,即使有些方面不如犀牛书也有价值,支持lz写下去。
0 请登录后投票
   发表时间:2010-04-28  
hyj1254 写道
如果真的需要的话,即使有些方面不如犀牛书也有价值,支持lz写下去。

嗯,寸有所长,尺有所短。这个系列主要着力于核心概念,以及由此引申出来的核心概念的使用(包括在客户端的使用和其他应用程序中的使用)。犀牛书其实分为三个部分:核心概念,客户端JS,JavaScript参考手册。最后一部分其实就是一个字典,而中间的一部分主要着力于客户端的JS。事实上,JavaScript的应用不仅仅在客户端,很多地方都可以用,而且我觉得这个也是一个趋势。
0 请登录后投票
   发表时间:2010-04-29   最后修改:2010-04-29
这个好像有点问题,楼主。
var variable = /[a-zA-Z_][a-zA-Z0-9_]*/;  
   
println(variable.test("~~~~^%&zd80"));//输出true,

要加上^ 和$


这个为撒输出也为true
var pid = /^\d{15}|\d{18}$/;//身份证  
println(pid.test("4302211985101050184355555555555555555"));

不解。
0 请登录后投票
   发表时间:2010-04-29  
zhangyou1010 写道
这个好像有点问题,楼主。
var variable = /[a-zA-Z_][a-zA-Z0-9_]*/;  
   
println(variable.test("~~~~^%&zd80"));//输出true,

要加上^ 和$


这个为撒输出也为true
var pid = /^\d{15}|\d{18}$/;//身份证  
println(pid.test("4302211985101050184355555555555555555"));

不解。


不好意思,今天大半天不在线,刚看到。

第一个例子可能是由于JavaScript的正则表达式格式与lex的不同,我正在查。
第二个例子是写错掉了,应该是:
var pid = /^[\d{15}|\d{18}]$/;//身份证  
println(pid.test("4302211985101050184355555555555555555"));


不然,就会将脱字符^与\d{15}连在一起^\d{15},而\d{18}和$连在一起\d{18}$,而你的输入串是以18个数字结尾的,因此可以匹配。
0 请登录后投票
   发表时间:2010-04-29  
zhangyou1010 写道
这个好像有点问题,楼主。
var variable = /[a-zA-Z_][a-zA-Z0-9_]*/;  
   
println(variable.test("~~~~^%&zd80"));//输出true,

要加上^ 和$


这个为撒输出也为true
var pid = /^\d{15}|\d{18}$/;//身份证  
println(pid.test("4302211985101050184355555555555555555"));

不解。



第一个问题应该是这样,variable表达式可以匹配形如:str, str1,_import_这样的串,而test只是测试模式在表达式中的匹配状况,也就是查找,当找到zd80时,可以匹配,然后返回值为true。

第一个问题中的表达式如果是:
var variable = /^[a-zA-Z_][a-zA-Z0-9_]*$/;     
println(variable.test("~~~~^%&zd80"));//输出true,


则返回flase

我关于test的描述有问题,我下来再做修改。谢谢你的细心。
0 请登录后投票
   发表时间:2010-04-29  
zhangyou1010朋友提出的问题已经在帖子里更新了,就因此而产生的误解向大家道歉。也感谢zhangyou1010
0 请登录后投票
   发表时间:2010-04-29  
内容非常好,学习了,谢谢分享!
0 请登录后投票
   发表时间:2010-04-30  
非常强大!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics