Javascript正則 科技藍光高檔簡約商務名片80 60MM 如何取出檔名中的尺寸?

時間 2021-06-19 19:13:20

1樓:王峰

好像是一道作業題,不過寫正規表示式還是挺有意思的。

首先我們要分析一下需求:

如果只需要取其中的整數,下面這個正則就可以滿足需求:

/\d+/g

但尺寸是有可能存在浮點數的,所以需要再加工一下:

/\d+(?:\.\d+)?/g

但是等一等,你要獲取的可能不只是數字,而是要把單位一起獲取到。對於單位,我們不能把數值之後的字元一股腦拿過來,需要定義乙個可列舉的列表,假設是(mm|cm|in),另外需要加上i修飾符:

/\d+(?:\.\d+)?(?:mm|cm|in)?/gi

更複雜的情況是,字串中出現的數字,除了尺寸,還可能有其它的,例如「科技藍光第2代高檔簡約商務名片80+60MM」,上面的正則會把2也給取出來,所以我們可以更進一步,把兩個數字尺寸一次拿到,這個時候就需要分析分隔符的可能性,假設只有+或*。此外,保險起見,我們在分隔符和尺寸之前增加可能存在空格的判斷。由於是一次取兩個尺寸,g修飾符可以拿掉:

/\d+(?:\.\d+)?\s*(?:mm|cm|in)?\ss*\d+(?:\.\d+)?\s*(?:mm|cm|in)?/i

當然你還可能希望數字和尺寸可以分開拿到,那麼只需要調整一下相應的捕獲組就可以了:

/(\d+(?:\.\d+)?)\s*(mm|cm|in)?\ss*(\d+(?:\.\d+)?)\s*(mm|cm|in)?/i

如何從正則對易關係 x,p i hbar 推出正則動量算符的表示式?

黑祭司 假如有最小作用量子 這個屬於假定,量子力學中無法第一原理性得出。考慮到則可以斷定作用量子 是q與t的線性函式,即存在 其中,與必定是某同一複線性空間中的兩個函式,否則 1 式無法匯出具有雅可比性的哈密頓量 即重寫的哈密頓量在新的廣義座標Q,P下為0,可以直接用哈密頓 雅可比方程匯出,也可以利...

JavaScript會被Vue Angular React取代嗎

gunters 不會!這個問題有點問題。VAR是基於JS的,即便沒人用原生JS,全部改用VAR,其實JS也沒有被取代。原本沒落的JS,這些年JS社群比較熱鬧,先進的框架層出不窮。每年,都有一種新的框架甚至語言解決了之前的痛苦,於是大家趨之若鶩。一年後,大家發現這個新的框架似乎有解決不了的某些問題。次...

javascript 關於 propertyIsEnumerable 的問題?

你應該用 arr.propertyIsEnumerable length arr.propertyIsEnumerable length arr.propertyIsEnumerable window.length arr.propertyIsEnumerable 0 假設你所在的視窗沒有 fram...