设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Javascript面试的完美指南(开发者视角)(5)

发布时间:2019-02-21 20:11 所属栏目:21 来源:前端小智
导读:创建正则表达式,有如下两种方式: varre=/ar/; varre=newRegExp('ar'); 上面的正则表达式是与给定字符串集匹配的表达式。定义正则表达式之后,我们可以尝试匹配并查看匹配的字符串。可以使用 exec 函数匹配字符串:

创建正则表达式,有如下两种方式:

  1. var re = /ar/;  
  2. var re = new RegExp('ar');  

上面的正则表达式是与给定字符串集匹配的表达式。定义正则表达式之后,我们可以尝试匹配并查看匹配的字符串。可以使用 exec 函数匹配字符串:

  1. re.exec("car"); // returns ["ar", index: 1, input: "car"]  
  2. re.exec("cab"); // returns null  

有一些特殊的字符类允许我们编写复杂的正则表达式。RegEx 中有许多类型的元素,其中一些如下:

  • 字符正则:\w-字母数字, \d- 数字, \D- 没有数字
  • 字符类正则:[x-y] x-y区间, [^x] 没有x
  • 数量正则:+ 至少一个、? 没或多个、* 多个
  • 边界正则,^ 开始、$ 结尾

例子如下:

  1. /* Character class */ 
  2.  
  3. var re1 = /[AEIOU]/; 
  4. re1.exec("Oval"); // returns ["O", index: 0, input: "Oval"] 
  5. re1.exec("2456"); // null 
  6. var re2 = /[1-9]/; 
  7. re2.exec('mp4'); // returns ["4", index: 2, input: "mp4"] 
  8.  
  9. /* Characters */ 
  10.  
  11. var re4 = /\d\D\w/; 
  12. re4.exec('1232W2sdf'); // returns ["2W2", index: 3, input: "1232W2sdf"] 
  13. re4.exec('W3q'); // returns null 
  14.  
  15. /* Boundaries */ 
  16.  
  17. var re5 = /^\d\D\w/; 
  18. re5.exec('2W34'); // returns ["2W3", index: 0, input: "2W34"] 
  19. re5.exec('W34567'); // returns null 
  20. var re6 = /^[0-9]{5}-[0-9]{5}-[0-9]{5}$/; 
  21. re6.exec('23451-45242-99078'); // returns ["23451-45242-99078", index: 0, input: "23451-45242-99078"] 
  22. re6.exec('23451-abcd-efgh-ijkl'); // returns null 
  23.  
  24. /* Quantifiers */ 
  25.  
  26. var re7 = /\d+\D+$/; 
  27. re7.exec('2abcd'); // returns ["2abcd", index: 0, input: "2abcd"] 
  28. re7.exec('23'); // returns null 
  29. re7.exec('2abcd3'); // returns null 
  30. var re8 = /<([\w]+).*>(.*?)<\/\1>/; 
  31. re8.exec('<p>Hello JS developer</p>'); //returns  ["<p>Hello JS developer</p>", "p", "Hello JS developer", index: 0, input: "<p>Hello JS developer</p>"]  

除了 exec 之外,还有其他函数,即 match、search 和 replace,可以使用正则表达式在另一个字符串中查找字符串,但是这些函数在字符串本身上使用。

  1. "2345-678r9".match(/[a-z A-Z]/); // returns ["r", index: 8, input: "2345-678r9"]  
  2. "2345-678r9".replace(/[a-z A-Z]/, ""); // returns 2345-6789  

Regex 是一个重要的主题,开发人员应该理解它,以便轻松解决复杂的问题。

9)理解 map、reduce 和 filter

函数式编程是当今的一个热门讨论话题。许多编程语言都在新版本中包含了函数概念,比如 lambdas(例如:Java >7)。在 JavaScrip t中,函数式编程结构的支持已经存在很长时间了。我们需要深入学习三个主要函数。数学函数接受一些输入和返回输出。纯函数都是给定的输入返回相同的输出。我们现在讨论的函数也满足纯度。

map

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读