JS如何使用正则表达式(match)截取括号中的文字和数字

 更新时间:2023年10月24日 10:23:04   作者:1024次日落  
正则表达式是一种用来匹配文本模式的工具,这篇文章主要给大家介绍了关于JS如何使用正则表达式(match)截取括号中文字和数字的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

引言

如题所示呢,大概需求就是将一串字符串中的指定内容截取,然后对截取的内容在做截取,小小的套娃一下,最后对得到的内容做相应的处理。类似于这样:

这种需求听起来很合(胡)理(扯),首先首先要截取字符串长度并没有限制的,所以就不能去做固定位置截取,这里为了实现这个小小的需求,我借助了正则表达式及match方法相互配合。

思路:

  • 因为要截取的内容都处在括号内,故首先将括号中的内容提取出来
  • 然后在对截取内容做汉字和数字的分开提取
  • 最后按需求对数字进行转换千克即可

步骤:

    (1)取出括号中的内容使用正则惰性匹配  大概写法是 /\((.+?)\)/g

    (2)取数字,所有数字或小数都会取出 /\d+(.\d+)?/g 

    (3)取汉字,这里需要借助汉字编码 /[\u4e00-\u9fa5]/g

代码: 

 因为我是Vue项目使用了filter 如下: 

filters: {
			toNumber(val) {
				// 取出括号中的内容
				let res = val.match(/\((.+?)\)/g)
				let num = 0
				if (res) {
					res.forEach(ele => {
						let numEle = ele.match(/\d+(.\d+)?/g).toString() //取出数字
						let unitEle =  ele.match(/[\u4e00-\u9fa5]/g).join("")  // 取出汉字
						switch (unitEle){
							case '克':
								num += (numEle * 1) / 1000
								break;
							case '千克':
								num += numEle * 1
								break;
							case '吨':
								num = num + (numEle * 1) * 1000
								break;
							case '斤': 
								num += (numEle * 1) * 0.5
								break;
						}
					})
					return num+'千克'
				}else {
					return res
				}
		
			}
		},

总结

到此这篇关于JS如何使用正则表达式(match)截取括号中的文字和数字的文章就介绍到这了,更多相关JS正则match截取括号文字数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript实现雪花飘落效果

    javascript实现雪花飘落效果

    这篇文章主要为大家详细介绍了javascript实现雪花飘落效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • js实现弹出窗口、页面变成灰色并不可操作的例子分享

    js实现弹出窗口、页面变成灰色并不可操作的例子分享

    为了更好的用户体验,现在网页中好多地方都使用弹出层。比如提示登陆,扫描微信二维码图片,论坛下载弹出扣除积分提醒等。
    2014-05-05
  • layer弹出层父子页面事件相互调用方法

    layer弹出层父子页面事件相互调用方法

    今天小编就为大家分享一篇layer弹出层父子页面事件相互调用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • JavaScript实现网页对象拖放功能的方法

    JavaScript实现网页对象拖放功能的方法

    这篇文章主要介绍了JavaScript实现网页对象拖放功能的方法,涉及javascript针对浏览器的判断、事件爱你的添加与移除等相关操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 微信小程序模板和模块化用法实例分析

    微信小程序模板和模块化用法实例分析

    这篇文章主要介绍了微信小程序模板和模块化用法,结合实例形式分析了微信小程序中的模板与模块化概念与简单使用技巧,需要的朋友可以参考下
    2017-11-11
  • jQuery 事件绑定及取消 bind live delegate on one区别解析

    jQuery 事件绑定及取消 bind live delegate on one区别解析

    这篇文章主要介绍了jquery 事件绑定及取消 bind live delegate on one区别解析,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • javascript 闭包详解

    javascript 闭包详解

    这篇文章主要详细介绍了javascript 闭包的相关资料,十分详尽,需要的朋友可以参考下
    2015-02-02
  • 原生JS中应该禁止出现的写法

    原生JS中应该禁止出现的写法

    这篇文章主要介绍了原生JS中应该禁止出现的写法,以提高代码效率和安全性,对效率和安全感兴趣的同学,可以参考下
    2021-05-05
  • 使用D3.js构建实时图形的示例代码

    使用D3.js构建实时图形的示例代码

    这篇文章主要介绍了使用D3.js构建实时图形的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 谈谈JS中的!!

    谈谈JS中的!!

    !!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false。下面看看通过本文给大家介绍了JS中的!!,需要的朋友参考下吧
    2017-12-12

最新评论