自從我觸及正則表達式以來,已經很長時間了。這很簡單,但我把頭髮拉出來。JavaScript正則表達式 - 從單詞旁邊提取數字
我有一個字符串,如下所示,我從DOM "MIN20, MAX40"
得到。我希望能夠在JavaScript中使用正則表達式來提取MIN
旁邊的整數和MAX
旁邊的整數,並將其放入單獨的變量min
和max
。我無法想出辦法。
感謝誰曾幫助我,你將成爲一名救星!
乾杯
自從我觸及正則表達式以來,已經很長時間了。這很簡單,但我把頭髮拉出來。JavaScript正則表達式 - 從單詞旁邊提取數字
我有一個字符串,如下所示,我從DOM "MIN20, MAX40"
得到。我希望能夠在JavaScript中使用正則表達式來提取MIN
旁邊的整數和MAX
旁邊的整數,並將其放入單獨的變量min
和max
。我無法想出辦法。
感謝誰曾幫助我,你將成爲一名救星!
乾杯
您可以使用:
var input = "MIN20, MAX40";
var matches = input.match(/MIN(\d+),\s*MAX(\d+)/);
var min = matches[1];
var max = matches[2];
var str = "MIN20, MAX40";
value = str.replace(/^MIN(\d+),\sMAX(\d+)$/, function(s, min, max) {
return [min, max]
});
console.log(value); // array
它不會導致到一個數組。 typeof value ==「string」(至少在谷歌瀏覽器中) – thorn 2010-11-16 11:28:03
多麼奇怪...我在FF 3.6.12試過,反正codaddict解決方案是最好的 – 2010-11-16 11:37:18
下面將提取號碼下面的 「MIN」 和 「MAX」 成稱爲mins
和maxes
整數數組:
var mins = [], maxes = [], result, arr, num;
var str = "MIN20, MAX40, MIN50";
while ((result = /(MIN|MAX)(\d+)/g.exec(str))) {
arr = (result[1] == "MIN") ? mins : maxes;
num = parseInt(result[2]);
arr.push(num);
}
// mins: [20, 50]
// maxes: [40]
這應該做的伎倆。
var str='MIN20, MAX40';
min = str.match(/MIN(\d+),/)[1];
max = str.match(/MAX(\d+)$/)[1];
,我認爲這會工作:
var matches = "MIN20, MAX40".match(/MIN(\d+), MAX(\d+)/);
var min = matches[1];
var max = matches[2];
+1!乾淨和簡單(你可以添加一個檢查'匹配',使其更好)。 – jwueller 2010-11-16 11:24:19
如果我們這麼簡單,就不需要正則表達式。我們可以做'var str =「MIN20,MAX40」,min = str.slice(3,5),max = str.slice(10,12);' – 2010-11-16 15:30:42
或甚至更簡單'min = 20,max = 40; ':D – 2010-11-16 15:59:29
這是爲我做的工作。雖然Tim Down的例子很好,如果需要超過兩個值。感謝大家 – Tom 2010-11-16 11:34:19
感謝您指出Tim Down爲未來的讀者舉例 – Martin 2014-03-14 19:19:39