2015-06-18 39 views
-1

我有一個英國排序代碼的字符串輸入。 (例如:「我的英國排序代碼是873492」)。客戶輸入此代碼並且代理必須以「我的英國排序代碼爲******」作爲響應。英國排序代碼正則表達式與字符串

在這裏有關正則表達式的論壇帖子並沒有清楚地說明如何屏蔽英國的代碼並保持原樣。請幫忙!

謝謝!

+0

你想從'我的英國排序的代碼是873492'提取'873492'? – apgp88

+0

歡迎來到Stack Overflow!請閱讀[旅遊]。最小的努力是讚賞。嘗試一下並將其編輯到您的帖子中。 – usr2564301

回答

1

由於類型代碼有6位,他們通常被格式化爲三對數字(如12-34-56)我也想嘗試匹配,所以你會需要這樣的東西:

var sortcode = document.getElementById("sortcode"); 
 
var result = document.getElementById("result"); 
 

 
sortcode.oninput = function(e){ 
 
    
 
    var match = sortcode.value.match(/\d{6}|\d{2}\s*?\-\s*?\d{2}\s*?\-\s*?\d{2}/); 
 
    
 
    if(match == null) 
 
    result.innerHTML = "There is no sort code in your input"; 
 
    else 
 
    result.innerHTML = sortcode.value.replace(/\d{6}|\d{2}\s*?\-\s*?\d{2}\s*?\-\s*?\d{2}/g, "******") 
 
    
 
};
<input type="text" id="sortcode" placeholder="Enter a sentence with your sort code"/> 
 

 
<div id="result"></div>

注意它也將匹配:

  • 任何被格式化的排序鱈魚即使數字和破折號之間有空格(例如, 12- 34 -56將是******)。
  • 具有6位數字倍數的數字(例如123456789012將是************)。
  • 即使沒有空格分隔的任何6位數字(例如123456789將爲******789)。

如果你不希望出現這種情況,你可以做一些假設,使這個更加嚴格所以這是不太可能的,你隱藏的東西是不是一種代碼,但在同一時間將是更有可能不匹配某種排序代碼但與額外條件不匹配的內容。

例如,假設您的排序代碼總是以空格開頭,並且總是在句尾(即它們後面沒有任何內容或點)。然後,該代碼將是:

var sortcode = document.getElementById("sortcode"); 
 
var result = document.getElementById("result"); 
 

 
sortcode.oninput = function(e){ 
 
    
 
    var match = sortcode.value.match(/\s\d{6}\.?$|\s\d{2}\s*?\-\s*?\d{2}\s*?\-\s*?\d{2}\.?$/); 
 
    
 
    if(match == null) 
 
    result.innerHTML = "There is no sort code in your input"; 
 
    else 
 
    result.innerHTML = sortcode.value.replace(/\s\d{6}\.?$|\s\d{2}\s*?\-\s*?\d{2}\s*?\-\s*?\d{2}\.?$/, " ******") 
 
    
 
};
<input type="text" id="sortcode" placeholder="Enter a sentence with your sort code"/> 
 

 
<div id="result"></div>

+0

非常感謝。這hleped! – stew