[英]How to write regex in JS for first 2 characters can be digit or alphabet and followed by hyphen and then 6 digit number?
我正在嘗試為以下格式創建正則表達式:
12-345678 Matches
AB-345678 Matches
$12-345678 Failed
%%-SDdfdf Failed
我寫了以下正則表達式,但它失敗了:
$('#customer-number').keyup(function(){
$(this).val($(this).val().replace(/^(d{2}|[a-z]{2})\-\\d{6}/,'$1-'))
});
但是正則表達式失敗了:
/^(d{2}|[a-z]{2})\-\\d{6}/
我是正則表達式的新手,請幫助我
嘗試以下
/^[a-zA-Z0-9]{2}-\d{6}/
在哪里
^
在行首斷言位置
az
在 a(索引 97)和 z(索引 122)之間的范圍內的單個字符(區分大小寫)
AZ
A(索引 65)和 Z(索引 90)之間范圍內的單個字符(區分大小寫)
0-9
范圍在 0(索引 48)和 9(索引 57)之間的單個字符(區分大小寫)
{2}
量詞 — 精確匹配 2 次
-
匹配字符 - 字面意思
\\d
匹配一個數字(等於 [0-9])
{6}
量詞 — 正好匹配 6 次
演示:
console.log(/^[a-zA-Z0-9]{2}-\\d{6}/.test('12-345678')); //true console.log(/^[a-zA-Z0-9]{2}-\\d{6}/.test('AB-345678')); //true console.log(/^[a-zA-Z0-9]{2}-\\d{6}/.test('$12-345678')); //false console.log(/^[a-zA-Z0-9]{2}-\\d{6}/.test('%%-SDdfdf')); //false
您在d之前錯過了\\
,您需要為大寫添加AZ
並且您添加了一個\\
來逃避另一個\\
。
^(\d{2}|[a-zA-Z]{2})\-\d{6}
試試這個正則表達式/^([a-zA-Z]{2}|[0-9]{2})-\\d{6}/g
function matchString() { var test1 = "11-122121"; var test2 = "1a-122121"; var test3 = "aa-122121"; var result1 = test1.match(/^([a-zA-Z]{2}|[0-9]{2})-\\d{6}/g); var result2 = test2.match(/^([a-zA-Z]{2}|[0-9]{2})-\\d{6}/g); var result3 = test3.match(/^([a-zA-Z]{2}|[0-9]{2})-\\d{6}/g); document.write("Output1 : " + result1 + "<br>"); document.write("Output2 : " + result2 + "<br>"); document.write("Output3 : " + result3); } matchString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.