正则表达式

本文借鉴参考原文如下
https://houdunren.gitee.io/note/js/14 正则表达式.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>
posted @ 2021-04-22 21:41  coderWWH  阅读(50)  评论(0)    收藏  举报