1

我希望 javascript 代码检查我的输入文本是否为 AS0301-12345 的特定格式

<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>
4

2 回答 2

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可能。
看看这个简短的演示

于 2013-05-17T20:16:07.547 回答
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 regexp 页面获得了一些想法。

于 2013-05-17T20:55:36.310 回答