2017-02-17 49 views
0

我如何獲得價值從價值排名:如何獲得值的JavaScript正則表達式

var pos = (59.9477, 59.9477) 
 
var arr = pos.replace(/[^\d|,]/g, "").split(","); 
 
console.log(arr);

+0

是'pos'字符串時???什麼是你想要的產出? –

+1

你的意思是'var pos ='(59.9477,59.9477)''?你的預期輸出是什麼? – SmokeyPHP

回答

2
  1. pos應該是一個字符串。
  2. 您必須排除.也不會被刪除。
  3. |(或)集合裏面沒有用處。

var pos = "(59.9477, 59.9477)"; 
 
var arr = pos.replace(/[^\d,.]/g, "").split(","); 
 
console.log(arr);

另一種方式來做到這一點:

您可以使用match獲得使用正則表達式/\d*\.?\d+/g結果。就像這樣:

var pos = "(59.9477, 59.9477)"; 
 
var arr = pos.match(/\d*\.?\d+/g); 
 
console.log(arr);

+0

只是第一個片段中的一個小類型:您還需要在那裏跳過句點:\。 – MacPrawn

+0

@MacPrawn集合中唯一需要轉義的是']'。 –

+0

@MacPrawn檢查此:http://stackoverflow.com/a/10593427/6647153! 「 –

0

只需使用引號,而不是():

var pos = "59.9477, 59.9477"; 
var arr = pos.replace(/[^\d|,]/g, "").split(","); 
console.log(arr); 
+0

我的問題是iam在REST json中使用引號獲取此值,並且我需要使用引號括起它的lat和long值嗎? – user3629354

+0

那麼你的數據是什麼?一個字符串,數組或json對象? JavaScript中沒有()之間的值。 ()僅用於定義或執行函數.. –

1

如何從價值正得到價值:

基於您的代碼,並與var pos = (59.9477, 59.9477)你的問題,你應該知道console.log(pos) // => 59.9477typeof post // => "number"和replace方法,正則表達式僅適用於String類型。所以我想你的變量可能是var pos = "(59.9477, 59.9477)"這是String。

var arr = pos.replace(/[^\d|,]/g, "").split(",");你的正則表達式/[^\d|,]/g,這意味着除了數字和逗號之外的所有數字,但我認爲你會想保留小數點嗎?其他你會回來["599477", "599477"]。我猜你想要[「59.9477」,「59.9477」],如果是你的代碼應該是var arr = pos.replace(/[^\d.,]/g, "").split(",");

注意:您不需要爲|使用or[^]