string.replace()替换匹配给定的正则表达式的(一个或多个)子串

在百度前端学习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上的任务源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值