この JavaScript Regex はなぜ機能しないのですか?
正規表現を使用して文字列からポイントを抽出しようとしましたが、ユーザーが null を検出しました結果。指定された正規表現「(s([0-9.-] )s,s([0-9.-] )s*)」は、かっこで囲まれ、カンマで区切られた点と一致します。ただし、「(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)」のような文字列に適用すると、
解決策
根本的な原因は、RegExp コンストラクターの誤った使用です。より便利でエラーが発生しにくい正規表現リテラルを使用するには、「new RegExp」を「/」に置き換えます。さらに、修飾子は 2 番目の引数として渡されます。
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 中国語 Web サイトの他の関連記事を参照してください。