正则表达式

本文借鉴参考原文如下
https://houdunren.gitee.io/note/js/14%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F.html

是什么

为什么

怎么做

案例一:

let hd = `
  \#1 js,200元 \#
  \#2 php,300元 \#
  \#9 houdunren.com \# 后盾人
  \#3 node.js,180元 \#
`;

要求:取出模板字符串中的名称及价格,以键值对的形式放入对象中输出

		<script>
			let hd = `
  			#1 js,200元 #
  			#2 php,300元 #
  			#9 houdunren.com # 后盾人
  			#3 node.js,180元 #
			`;


			//console.log(hd.match(/\s*#\d+\s+.+\s+#/g)[0]);
			//输出:
  			//	#1 js,200元 #
  			//	#
			//问题出现在了.+包括了空格和#,所以后面的\s+匹配了换行,最后的#就匹配到了下一行的换行

			//console.log(hd.match(/\s*#\d+\s+.+\s+#\s+/gm));
			//
			//这样做会把 #9 houdunren.com # 后盾人 也匹配到

			//console.log(hd.match(/^\s*#\d+\s+.+\s+#$/gm));
			let lessons = hd.match(/^\s*#\d+\s+.+\s+#$/gm).map(v => {
			  v = v.replace(/\s*#\d+\s*/, "").replace(/\s+#/, "");
			  [name, price] = v.split(",");
			  return { name, price };
			});
			console.log(JSON.stringify(lessons, null, 2));
		</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值