2012-04-23 62 views
-1

我遇到的问题是我想创建一个JavaScript代码,它与我的表单中的html5模式属性一起工作。使用JavaScript的HTML5模式

该模式本身是指出,第一个字母必须是大写和最多12个字符。这是我迄今为止所拥有的。感谢Juhana,我得到了一个更好的模式代码。

^[A-Z][A-Za-z]{0,11}$ 

的JavaScript应该立即告知屏幕上的人正在一个错误与他们的投入领域,并指定究竟是什么不妥的地方。我没有这个代码,因为我甚至不知道如何使它与模式规则一起工作。

我一直坚持这一个礼拜,现在我无法弄清楚。

谢谢,提前。

+5

让为自己的代码说话。你有什么尝试?你的代码在哪里? – Joseph 2012-04-23 06:20:34

+0

我无法弄清楚你正在试图用模式做什么。 ''[A-Z] [A-Za-z] {0,11} $'是否满足要求? – JJJ 2012-04-23 07:02:36

+0

Juhana确实修复了我的模式!我不知道为什么我将所有这些其他规则添加到代码中...现在我唯一遇到的问题是使用JavaScript来立即显示模式本身究竟有什么问题... – shade917 2012-04-23 07:11:59

回答

0

唯一的机会来识别给出的字符串中的错误,我目前看到的是以下内容:您必须打破你的正则表达式并遍历字符串。

由于您的正则表达式相当简单,您可以从^[A-Z]开始检查第一个符号是否包含一个字母。

之后,你是这样的:

function check(string){ 

    var error = false, 
     position = -1; 

    loop : for(i=1;i<string.length;i++){ 
     var res = string.substring(i,i+1).match(/[A-Za-z]/); 
     if(!res){ 
      position = i+1; 
      error = true; 
      break loop; 
     } 
    } 
    return {'error':error,'position':position}; 
} 


var check = check("aasfcd"); 

if (check.error){ 
    document.write("Error occured on position: "+check.position); 
}else{ 
    document.write("Your string is okay"); 
} 

​ 

example fiddle