在百度前端学习js遇到的问题,总结一下:
概要:
string.relace(regexp,replacement)
参数
regexp:指定要替换的模式RegExp对象。如果这个参数是一个字符串,他将用作一个搜索的直接量文本模式,他将不会先转化为RegExp对象。
replacement:用来替换的字符串,或者一个函数,用于在调用时生成被替换的文本。
返回
一个新的字符串,其中匹配RegExp的第一个或者所有的地方被替换成了replacement。
详细的描述
replace()在字符串string上执行查找与替换的操作。他在string中搜索一个或者多个匹配regexp的子串并用replacement代替。如果regexp具有属性“g”,则replace()将替换所有的子串,在其他情况下,他只替换第一个子串。
replacement可以是一个字符串或者是一个函数。如果他是一个字符串,那么匹配到的子串都被替换成该字符串。在replacement中$是有含义的,稍后会为大家列一个表。在es3定义了replace()的replacement的参数可以用一个函数来代替字符串。在使用函数的状态下,函数会在每一个匹配结果上被调用,他返回的 字符串作为代替文本。
replacement中$的含义
字符 | 替换 |
---|---|
1, 2…..$9 | 匹配第1~99个regexp中圆括号(正则表达式中的分组)子表达式的文本 |
$& | 匹配regexp的子串 |
$` | 匹配子串左边的文本 |
$’ | 匹配子串右边的文本 |
$$ | 美元符号 |
实例:百度学院要求是这样的:当点击查询时,将查询词在各个元素内容中做模糊匹配,将匹配到的内容进行特殊标识,如文字颜色等。举例,内容中有abcd,查询词为ab或bc,则该内容需要标识
解题思路:使用正则表达式来匹配将要搜索的内容,将匹配到的文本替换为
<span style="color:red">$&</span>
让匹配到的文本的颜色变成红色,从而达到特殊标识的作用。$&的意思就是调用正则表达式所匹配到的内容。
任务:
有一个textarea输入框,以及4个操作按钮
点击”左侧入”,将input中输入的数字从左侧插入队列中;
- 点击”右侧入”,将input中输入的数字从右侧插入队列中;
- 点击”左侧出”,读取并删除队列左侧第一个元素,并弹窗显示元素中数值;
- 点击”右侧出”,读取并删除队列又侧第一个元素,并弹窗显示元素中数值;
- 点击队列中任何一个元素,则该元素会被从队列中删除
- 允许一次批量输入多个内容,格式可以为数字、中文、英文等,可以通过用回车,逗号(全角半角均可),顿号,空格(全角半角、Tab等均可)等符号作为不同内容的间隔。
- 增加一个查询文本输入框,和一个查询按钮,当点击查询时,将查询词在各个元素内容中做模糊匹配,将匹配到的内容进行特殊标识,如文字颜色等。举例,内容中有abcd,查询词为ab或bc,则该内容需要标识。
附:
GitHub上的任务源码