javascript-string-match

#match()方法的字串 深入了解JavaScript的字串match()方法 给定一个由regex标识的正则表达式,尝试在字串中匹配它。 示例: 'Hi Flavio'.match(/avio/) // Array [ 'avio' ] 'Test 123123329'.match(/\d+/) // Array [ "123123329" ] 'hey'.match(/(hey|ho)/) //Array [ "hey", "hey" ] '123s'.match(/^(\d{3})(\w+)$/) //Array [ "123s", "123", "s" ] '123456789'.match(/(\d)+/) //Array [ "123456789", "9" ] '123s'.match(/^(\d{3})(?:\s)(\w+)$/) //null '123 s'.match(/^(\d{3})(?:\s)(\w+)$/) //Array [ "123 s", "123", "s" ] 'I saw a bear'.match(/\bbear/) //Array ["bear"] 'I saw a beard'.match(/\bbear/) //Array ["bear"] 'I saw a beard'.match(/\bbear\b/) //null 'cool\_bear'.match(/\bbear\b/) //null 要了解有关正则表达式的更多信息,请参阅我的正则表达式教程。

在 VS Code 中使用正則表達式進行搜索和替換

我需要對我的網站存儲庫進行一個相當大的更改。 我有數百個 Markdown 文件,而在我的 Markdown 中,有時會包含帶有空格的圖像,這主要是因為它們是截圖,所以格式類似於 Screen Shot 2021-10-16 at 09.45.47.png 加載圖像的字符串是: ![Alt text](/images/vscode-search-replace-regex/Screen\_Shot\_2021-10-16\_at\_09.45.47.png) 這在我安裝的 Hugo 版本中運行良好,但最近在版本 0.100 中,他們刪除了我使用的 Markdown 库,名為 Blackfriday,現在只支持 Goldmark,它不再允許圖像中有空格(還有其他更改)。 為了跟上 Hugo,我真的需要更新我的網站,因為我使用的是舊版本,已經停止更新 10 個月了。 這就是我的問題所在。我需要更新所有的圖像鏈接。 嗯,其實不是這樣。我可以在圖像名稱中加上 <>: ![Alt text](/images/vscode-search-replace-regex/Screen\_Shot\_2021-10-16\_at\_09.45.47.png) 然後一切又正常了。 我只需要搜索和替換所有的圖像鏈接! 我有成千上萬個這樣的鏈接,這不是我要做的事情。 所以我記得在 VS Code 中的查找/替換功能中有正則表達式。 經過一番試驗,使用如下的正則表達式: !\[(.+)\]\((.\*\s+.\*)\) 我能夠創建 2 個捕獲組,一個用於 alt 文本,一個用於文件名。 然後在替換框中,我可以使用 $1 作為 alt 文本,使用 $2 作為文件名: !\[\]\((.\*\s+.\*)\) 這個替換字符串 ![](/images/vscode-search-replace-regex/$1)對於沒有 alt 文本的圖像有效(我知道,我知道…): 我是如何得出這些正則表達式的? 主要通過我的 JavaScript 正則表達式教程。 我之前寫過那篇文章,但它仍然是我首選的資源。 然後是一些谷歌搜索和使用 https://regex101.com 快速測試正則表達式。 正則表達式對我來說仍然有點神奇,但有時它是唯一能做到的工具。 就像在這個例子中一樣。

如何使用JavaScript將逗號轉換為點

我遇到了一個問題:我有一個字串包含一個十進制數字,但使用者可以用兩種方式來表示,這包含使用點或逗號: 0,32 0.32 不同的國家使用不同的方法在數字中分隔整數部分和小數部分。 所以我決定在找到逗號時將字串轉換為使用點。 我使用了一個簡單的正則表達式來做到這一點: let value = '0,32' value = value.replace(/,/g, '.') //value 現在為 '0.32' 您可以使用replace(/\./g, ',')來進行相反的操作(請注意在正則表達式中點前面的\,因為它是一個特殊字符)。 正則表達式中的g標誌確保如果逗號(或點在第二個例子中)有多個實例,它們都會被轉換。 這在我們的使用情境下並不適用,我認為我們需要進行更多驗證來檢查輸入的完整性,但這是一個開始。 在我的情況下,在進行這個替換之後,我調用了parseFloat(value)來從字符串中得到浮點數,然後使用toFixed(2)將小數位數限制為2: value = parseFloat(value).toFixed(2)