簡體   English   中英

如何在JavaScript中使用RegExp從這個簡單的字符串中提取數字?

[英]How to extract a number from this simple string using RegExp in JavaScript?

我需要從以下簡單字符串中提取數字:

base:873

其中“ base:”部分是可選的,即,它可能/可能不存在於字符串中。

我應該如何使用RegExp從上述字符串中提取數字?

PS:不幸的是,看到其他正則表達式實現與JavaScript的實現之間有如此大的差異。

TIA,梅赫迪

UPDATE1:

考慮以下循環:

for (var i = 0; i < 3; i++) {
    code = '216';

    var matches = /(bid:)?(\d+)/ig.exec(code);
    if (matches != null) {
        console.log('>>>' + matches[0]);
    }
    else {
        console.log('>>> no match');
    }
}

請注意,“ code”變量是在循環內設置的,僅用於測試目的。 但是,令人驚奇的是,上面提到的代碼將輸出以下內容:

>>>216
>>> no match
>>>216

這怎么可能???

好吧,如果base:是可選的,那么您不需要關心它,對嗎?

\d+

是你所需要的全部。

result = subject.match(/\d+/);

將返回字符串subject的(第一個)數字。

還是您的意思是:僅當數字是字符串中唯一的東西或以base:為前綴時才匹配數字?

在這種情況下,請使用^(?:base:)?(\\d+)$

var match = /^(?:base:)?(\d+)$/.exec(subject);
if (match != null) {
    result = match[1];
}

嘗試(base:)?(\\d+)

該數字將在第二個捕獲變量中。

或者,將“ base:”替換為任何內容。

或在':'上分割。

管他呢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM