亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS如何使用正則表達式(match)截取括號中的文字和數(shù)字

 更新時間:2023年10月24日 10:23:04   作者:1024次日落  
正則表達式是一種用來匹配文本模式的工具,這篇文章主要給大家介紹了關(guān)于JS如何使用正則表達式(match)截取括號中文字和數(shù)字的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

引言

如題所示呢,大概需求就是將一串字符串中的指定內(nèi)容截取,然后對截取的內(nèi)容在做截取,小小的套娃一下,最后對得到的內(nèi)容做相應的處理。類似于這樣:

這種需求聽起來很合(胡)理(扯),首先首先要截取字符串長度并沒有限制的,所以就不能去做固定位置截取,這里為了實現(xiàn)這個小小的需求,我借助了正則表達式及match方法相互配合。

思路:

  • 因為要截取的內(nèi)容都處在括號內(nèi),故首先將括號中的內(nèi)容提取出來
  • 然后在對截取內(nèi)容做漢字和數(shù)字的分開提取
  • 最后按需求對數(shù)字進行轉(zhuǎn)換千克即可

步驟:

    (1)取出括號中的內(nèi)容使用正則惰性匹配  大概寫法是 /\((.+?)\)/g

    (2)取數(shù)字,所有數(shù)字或小數(shù)都會取出 /\d+(.\d+)?/g 

    (3)取漢字,這里需要借助漢字編碼 /[\u4e00-\u9fa5]/g

代碼: 

 因為我是Vue項目使用了filter 如下: 

filters: {
			toNumber(val) {
				// 取出括號中的內(nèi)容
				let res = val.match(/\((.+?)\)/g)
				let num = 0
				if (res) {
					res.forEach(ele => {
						let numEle = ele.match(/\d+(.\d+)?/g).toString() //取出數(shù)字
						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
				}
		
			}
		},

總結(jié)

到此這篇關(guān)于JS如何使用正則表達式(match)截取括號中的文字和數(shù)字的文章就介紹到這了,更多相關(guān)JS正則match截取括號文字數(shù)字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論