任务描述:http://ife.baidu.com/task/detail?taskId=20

代码地址:https://github.com/Shirley0926/Baidu.IFE/blob/master/JavaScript/task20.js

demo地址:http://shirley0926.github.io/Baidu.IFE/html/task20.html

任务详解:

1.允许一次批量输入多个内容,格式可以为数字、中文、英文等,可以通过用回车,逗号(全角半角均可),顿号,空格(全角半角、Tab等均可)等符号作为不同内容的间隔

思路:对textarea输入的内容用正则表达式进行替换,把不是英文字母、汉字和数字的内容替换成“ ”,

txt.replace(/[^0-9a-zA-z\u4e00-\u9fa5]/g," ")

  

然后再利用string.split函数将输入的字符串分成不同的单词存在数组中,对其进行渲染。

问题:测试下来,发现现在的正则表达式还是会保留着"`""_"等内容,不知道问题在什么地方

2.增加一个查询文本输入框,和一个查询按钮,当点击查询时,将查询词在各个元素内容中做模糊匹配,将匹配到的内容进行特殊标识,如文字颜色等。举例,内容中有abcd,查询词为ab或bc,则该内容需要标识

思路:用string.indexOf()方法确定查询文本框中的内容是不是与str中的内容匹配。如果有匹配的,将对应的div中的插入span标签将对应的内容放在span标签内,然后再给其一个不同的文字颜色。

花费巨长的时间实现后,发现别人的代码写的非常的简洁。还是对正则表达式理解不深,在task21的时候要提高改进。

1.string.split()后面的分割符可以跟正则表达式,然后再用filter()方法把没有内容的字符串删除,就可以完成对textarea输入内容的处理。

        var arrWord = str.split(/[^0-9a-zA-Z\u4e00-\u9fa5]+/).filter(function(e) {if (e != null && e.length > 0) {return true;} else {return false;}});

2.而后面的查询与前面插入的render函数是同一个。render调用的时候可以传入实参,也可以不传入。插入的时候是render(),只是不执行if中的语句。这样可以让代码更加的简洁。我想到的处理方式是render()好了之后查找到哪个字符串再对其处理,没有这个方式简洁。

后面查找的代码也很简洁,将查找内容采用正则表达式的方式进行匹配,如果发现后就对其进行处理。我的方式……实在是太复杂了。还有一个小疑问,为什么要这么写呢?

if (str != null && str.length > 0)

  

    function render(str) {$('#result').innerHTML = arrData.map(function(d) {if (str != null && str.length > 0) {d = d.replace(new RegExp(str, "g"), "<span class='select'>" + str + "</span>");}return '<div>' + d + '</div>';}).join('');}

  文中代码地址来源:https://github.com/soulclearm/Learn_front_end/blob/dev/public/second/task20.html

转载于:https://www.cnblogs.com/shirleyyang-fe/p/5700124.html

百度前端技术学院Task20 笔记相关推荐

  1. 2018年百度前端技术学院学习笔记

    对百度前端技术学院心仪已久,今天开始正式学习了,特地开个博客记录今后的学习 学了几个月的前端了,之前也做过一些百度前端学院的练习,终于等到2018年前端学院开始,在开头先立flag,本次前端学院的任务 ...

  2. 记录:百度前端技术学院任务笔记(一)

    其实严格来说,今天算不上是学习前端的第一天.之前有断断续续的看过一些书和视频教程,只是今天正式参加了百度前端学院的课程任务,从这一点来说,就把今天当作是正式学习的第一天吧. 今天的任务其实就是一个大概 ...

  3. 百度前端技术学院-精选笔记-1 HTML学习笔记

    以下是我个人的理解,希望得到肯定与指正,在此先感谢各位. 而且不说温故知新,看别人的笔记就相当于复习了,记得更牢固. 向大家安利四个在线编写页面的网站(在写笔记的时候,千万不要在预览的状态下点击链接, ...

  4. 学计算机前端技术学院,百度前端技术学院(任务)

    百度前端技术学院 这一期高档班的标题列表在:ife/2015_spring/taskatmaster·baidu-ife/ife·GitHub下面的高档班(趁便吐槽一下知乎的链接无法识别URL中文锚点 ...

  5. 百度前端技术学院—斌斌学院题库 转载 cristina-guan

    Cristina_Guan https://github.com/CristinaGuan 博客园 首页 新随笔 联系 订阅 管理 随笔 - 34  文章 - 3  评论 - 2 百度前端技术学院-斌 ...

  6. 百度前端技术学院—斌斌学院题库

    任务一:零基础JavaScript编码(一) 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理性,但即使如此,真正决 ...

  7. 百度前端技术学院--零基础--第二天 给自己做一个在线简历吧

    百度前端技术学院–零基础–第二天 给自己做一个在线简历吧 课程目标 通过简单的实践,更加清楚地了解HTML是什么,HTML5是什么.学习基本的HTML标签,理解HTML语义化概念 任务描述 用code ...

  8. 百度前端技术学院—-小薇学院(HTML CSS课程任务)

    任务一:零基础HTML编码 课程概述 作业提交截止时间:04-24 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理 ...

  9. 百度前端技术学院—-小薇学院(HTML+CSS课程任务)

    任务一:零基础HTML编码 课程概述 作业提交截止时间:04-24 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理 ...

最新文章

  1. vue 往对象中添加键值对_【Vue】Vue学习之混入
  2. win7删除桌面文件后手动刷新才会消失的解决方法
  3. 各大网站CSS代码初始化集合
  4. 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)
  5. ACS被集成到了Windows Azure Management Portal中
  6. 我的vim和emacs配置文件
  7. rrt matlab算法,rrt算法matlab代码
  8. android的otg功能,怎么打开手机OTG功能?
  9. 计算机多核启动原理,多核cpu工作原理 不进来看看?
  10. uboot do_bootm函数详解
  11. 更改计算机用户名批处理,window批处理修改计算机名
  12. 安卓期末大作业——售票APP源码和设计报告
  13. ubuntu 8.10安装配置经验(转载)
  14. Unity------Bounds
  15. 电脑考证一级Word文档
  16. 阿里云正式发布小程序Serverless 为用户提供一套代码多端使用
  17. 选择语句switch和循环语句while
  18. php1064,PHP创建表错误1064
  19. 怎么查看服务器支持php,php怎么查看本地服务器配置信息?
  20. 进入实验室的一点感悟

热门文章

  1. mysql安装教程8.0.21安装,mysql 8.0.21 安装配置方法图文教程
  2. 【深度思考】javaweb框架技术心得
  3. 一个星期+4轮面试终拿下offer,极致干货
  4. 解释上采样和PixelShuffle
  5. python【Multiprocessing and threading】深入浅出多进程和多线程
  6. python【力扣LeetCode算法题库】16- 最接近的三数之和
  7. Android移动开发之【Android实战项目】DAY14-修改json里某个字段的值
  8. java中的默认排序规则,C#中列表,集合排序Sort,OrderBy与Java排序规则默认不一致...
  9. python中data.find_all爬取网站为空列表_Python网络爬虫之Scrapy 框架-分布式【第二十九节】...
  10. react中使用create-react-app创建项目执行函数两次