簡體   English   中英

如何在javascript中有效地匹配字符串中間的數字?

[英]How to match digit in middle of a string efficiently in javascript?

我有像

XXX-1234
XXXX-1234
XX - 4321
ABCDE - 4321
AB -5677

因此,開頭會有字母。 然后會有連字符。 然后是4位數字。 字母數可能有所不同,但數字位數相同= 4

現在,我需要匹配數字中的前2個位置。 所以我嘗試了一個漫長的過程。

temp_digit=mystring;
temp_digit=temp_digit.replace(/ /g,'');
temp_digit=temp_digit.split("-");
if(temp_digit[1].substring(0,2)=='12') {}

現在有使用正則表達式/模式匹配的任何過程,以便我可以高效地完成它。 string.match(regexp)之類的東西我在regex模式中很笨。 如何從上述字符串的4位數字中找到前兩位數字? 如果解決方案可以匹配不帶連字符的數字,例如XXX 1234那也很棒,但這是可選的。

嘗試查找至少一個字母[a-zA-Z]+的正則表達式,如果需要\\s*話,再加上一些空格\\s* ,再加上連字符- ,然后根據需要\\s*話再加上一些空格\\s* 然后,它匹配模式后的前兩位\\d{2}

[a-zA-Z]+\s*-\s*(\d{2})

可能有所不同,但位數相同= 4
現在,我需要匹配數字中的前2個位置。

如果解決方案可以匹配不帶連字符的數字,例如XXX 1234那也很棒,但這是可選的。

您真的需要檢查字母開頭嗎? 如何匹配任意4位數字並僅捕獲前2位數字?

正則表達式

/\b(\d{2})\d{2}\b/

火柴:

 var regex = /\\b(\\d{2})\\d{2}\\b/; var str = 'ABCDE 4321'; var result = str.match(regex)[1]; document.body.innerText += result; 

如果末尾總是有4位數字,則可以將其切成薄片:

str.trim().slice(-4,-2);

這是帶有示例字符串的jsfiddle: https ://jsfiddle.net/mckinleymedia/6suffmmm/

暫無
暫無

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

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