首頁 >web前端 >js教程 >為什麼我的 JavaScript 正規表示式無法提取座標,如何修復?

為什麼我的 JavaScript 正規表示式無法提取座標,如何修復?

Susan Sarandon
Susan Sarandon原創
2024-12-10 04:19:13442瀏覽

Why Does My JavaScript Regex Fail to Extract Coordinates, and How Do I Fix It?

了解JavaScript 正規表示式故障

在JavaScript 中,開發人員遇到了一個正規表示式(regex) 的問題,該正則表達式旨在從給定的字串。正規表示式模式嘗試匹配 (lat, long) 形式的座標對,但與測試字串結合時未能產生任何結果。

開發人員已在 RegexPal 中正確測試了正規表示式模式,從而產生了預期的結果。但是,當在 JavaScript 中實作該模式時,它會傳回 null 而不是預期的匹配數組。

解決方案:轉義反斜線並使用正規表示式文字

到為了解決這個問題,開發人員需要做出兩處調整。首先,在 JavaScript 中使用 RegExp 物件時,分隔正規表示式模式的正斜線 (/) 不應包含在表達式中。

其次,反斜線字元 () 在 JavaScript 字串中具有特殊意義。因此,將正規表示式模式定義為字串時,必須使用另一個反斜線對每個反斜線進行轉義。

或者,開發人員可以使用正規表示式文字,這是一個更簡潔、更方便的選項。正規表示式文字透過將模式括在正斜線內來表示,例如:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;

理解正規表示式模式

提供的正規表示式模式旨在匹配座標對括在括號中,每個座標前後都有可選的空格。此模式由三個捕獲組組成:

  • (s*([0-9.-] )s* 匹配左括號,後面跟著可選的空格,然後將緯度坐標捕獲為一個組.
  • ,符合分隔座標的逗號。匹配可選空格在逗號之後,然後捕獲經度座標作為另一組。
  • 使用.exec() 擷取座標
在JavaScript 中,.match()方法傳回一個陣列表示輸入字串的整個匹配部分的字串。 ,其中第一個元素是整個匹配的子字串,後續元素是捕獲的群組。直到不再有匹配項。
var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;

此程式碼將從輸入字串中提取座標對,並將它們作為數組的陣列儲存在點數組中,每個內部數組包含緯度和經度座標。

以上是為什麼我的 JavaScript 正規表示式無法提取座標,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn