![](/img/trans.png)
[英]How do I make an anchored regex match in the middle of a string in 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.