发表于: 2017-05-19 23:41:11
1 1038
1、补习了任务2的学习资料,正则表达式(在代码中常简写为regex、regexp或RE),简单来说就是js中进行文本检索和替换的语法。
(1)、语法:/正则表达式主体/修饰符(可选)
(2)、实例
var patt = /runoob/I
// /runoob/i 是一个正则表达式;runoob是一个正则表达式主体 (用于检索);i是一个修饰符 (搜索不区分大小写)。
(3)、使用方法
在 JavaScript 中,正则表达式通常用于两个字符串方法(检索位置和替换文本) : search() 和 replace()。
(4)search() 方法使用正则表达式
var str = "Visit Runoob!";
var n = str.search(/Runoob/i); //输出结果为6,i表示不区分大小写。
注意:也可使用字符串作为参数,会转换为正则表达式,即第二段代码等同于var n = str.search(“Runoob”)。
(5)replace()替换
使用方法同上,结构中增加一个新替换的字符串,即var n = str. replace() (/Runoob/I,”hello”); var n = str. replace (“Runoob” ,”hello”)
(6)修饰符
i:见上。
g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m:执行多行匹配。
(7)使用 RegExp 对象- test()
var patt = /e/; //定义检索对象为字母”e”
patt.test("The best things in life are free!"); //被检索文档中是否有检索对象,有返回true,没有则返回false。等同于/e/.test("。。。。")
(8)使用 RegExp 对象- exec()
/e/.exec("The best things in life are free!");
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。如有则返回检索对象字母”e”。
(9)查找范围定义
包括方括号[](例如:[a-z]查找任何从小写 a 到小写 z 的字符。)
元字符(特殊含义的字符,例如 \d 查找数字。)
量词(例如n+ :匹配任何包含至少一个 n 的字符串。/a+/ 匹配 "candy" 中的 "a","caaaaaaandy" 中所有的 "a"。)
需要记忆的东西比较多,大概看了一遍,在后续应用中逐渐查找熟悉后掌握。
2、有限状态机
好像网上的资料不多,参考链接:http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html
特征:状态总数(state)是有限的;任一时刻,只处在一种状态之中;某种条件下,会从一种状态转变(transition)到另一种状态。
可以看到,有限状态机的写法,逻辑清晰,表达力强,有利于封装事件。一个对象的状态越多、发生的事件越多,就越适合采用有限状态机的写法。
后面还提供了一个函数库,ms应用起来更加简单易懂。
个人理解既是元素触发某种事件带来的状态变化,然后封装应用。
3、初写了任务4的两个静态网页,没有加JS,就暂时不放上来了。之前一直对任务游戏的逻辑不太清楚(没玩过游戏),看了一期《饭局的诱惑》当中明星的狼人杀对战,还挺有意思的,游戏的玩法也比较清楚了。
困难:有限状态机的参考资料比较少,如果就是以上面的资料为准,是完全自己编写还是借助函数库比较好呢,请师兄指点下,谢谢。
收获:正则表达式可以应用在任务2,输入数字范围那里。自己之前虽然加了几个判断条件,但是现在来看还是不够完善,新技能get。有限状态机暂时比较懵,明天结合任务实际再看一下。
计划:根据师兄指点,后续还是继续每天啃一点官方推荐的课本,再结合慕课网的一些视频综合学习。同时明天继续任务4。
评论