為什麼這個 JavaScript 正規表示式不起作用?
嘗試使用正規表示式從字串中提取點,使用者遇到了 null結果。提供的正規表示式「(s([0-9.-] )s,s([0-9.-] )s*)」符合括號內並以逗號分隔的點。但是,當應用於「(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.1902626)」這樣的字串時,它失敗時,它的字串失敗。
解法
根本原因是 RegExp 建構子的錯誤使用。若要使用較方便且不易出錯的正規表示式文字,請將“new RegExp”替換為“/”。此外,修飾符作為第二個參數傳遞:
var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;
輸出注意事項
match() 傳回一個符合字串數組,這對於提取數值。相反,應該使用 exec() 來提取單一匹配項:
var result, points = []; while ((result = reg.exec(polygons)) !== null) { points.push([+result[1], +result[2]]); }
這將建立一個包含數字座標的陣列。或者,如果首選字串,請省略一元加號 ( )。
以上是為什麼我的 JavaScript 正規表示式無法從字串中提取座標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!