1

我想的JavaScript代碼來檢查我的輸入文本是否是在特定的格式AS0301-12345JavaScript來檢查字符串以這種格式

<apex:inputText id="searchText" value="{!searchText}" onmousemove="checkingstring(this)"/> 

<script> 
function checkingstring(searchText){ 
var pattern = "([a-zA-Z](2)[0-9](4)-[0-9](5))"; /// is it correct 
var regexp = new System.Text.RegularExpressions.Regex(pattern); 
var userInput = "(123) 555-1243"; 
if (!regexp.IsMatch($component.searchText)) 
{ 
    alert("The syntax is always as follows: AANNNN-NNNNN (A= Alpha/Letter; N= Number) i.e.FL0301-12345</b>"); 

} 
} 
</script> 
+3

JavaScript不是C#。而且,你的正則表達式是錯誤的;你需要大括號。 – SLaks

+0

另外,'onmousemove'可能不是*最好的事件處理程序來調用該函數.. –

+0

嗨MIke,如何使用onfocus? – user1513995

回答

4

你的JS函數應該看起來更像是這樣的:

function checkingstring(inputElem) { 
    var regex = /^[A-Z]{2}[0-9]{4}-[0-9]{5}$/i; 
    var searchText = inputElem.value; 
    if (searchText.length && !regex.test(searchText)) { 
    alert('The syntax is always as follows: AANNNN-NNNNN \n' + 
      '(A: Alpha/Letter; N: Number), e.g. FL0301-12345'); 
    } 
} 

您應該也可能將onmousemove更改爲更有意義的內容,例如onblur也許。
看看這個short demo

+0

嗨,我無法鏈接inputText到JavaScript可以請你幫我.. – user1513995

+0

我更新了我的答案,以鏈接一個簡短的演示。你應該能夠將ASPX和HTML連接起來。 – gkalpak

0

這就是我該怎麼做的。有很多功能可以壓縮成簡寫形式。將onMouseMove更改爲onChange,而不是在鼠標移動時進行檢查,而是檢查searchText的編輯何時完成。

<apex:inputText id="searchText" value="{!searchText}" onChange="checkingstring(this)"/> 

<script> 
function checkingstring(searchText){ 
    var regexp = /^[A-Z]{2}\d{4}-\d{5}$/i; //AANNNN-NNNNN A = Capital N = Number 
    if (!regexp.exec(searchText.value)) { 
     alert("The syntax is always as follows: AANNNN-NNNNN (A= Alpha/Letter; N= Number) i.e.FL0301-12345</b>"); 
    } 
} 
</script> 

從w3schools js正則表達式頁面得到了一些想法。