[英]How to extract a date value from a string using regexp in javascript?
[英]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.