Jquery 如何仅验证英文字母字符

Jquery 如何仅验证英文字母字符,jquery,regex,validation,coldfusion,jquery-validate,Jquery,Regex,Validation,Coldfusion,Jquery Validate,我在页面上有一个文本字段,允许人们输入自己的名字。然后,这些内容会包含在专门为他们制作的URL中,例如mysite.net/johnyfive 我不希望人们在他们的名字中使用任何特殊字符,包括来自非英语字母的字符,如阿拉伯语或汉语 如何在ColdFusion中验证?我为英文名称#重新替换(LCase(ARGUMENTS.Name)、“[^a-z0-9]”、“'ALL')#提出了这个方法,以确保只允许使用字符a-Z和数字。但是,如果有人输入了类似于的内容,那么我想直接拒绝它,而不是试图替换它 我还

我在页面上有一个文本字段,允许人们输入自己的名字。然后,这些内容会包含在专门为他们制作的URL中,例如
mysite.net/johnyfive

我不希望人们在他们的名字中使用任何特殊字符,包括来自非英语字母的字符,如阿拉伯语或汉语

如何在ColdFusion中验证?我为英文名称
#重新替换(LCase(ARGUMENTS.Name)、“[^a-z0-9]”、“'ALL')#
提出了这个方法,以确保只允许使用字符a-Z和数字。但是,如果有人输入了类似于
的内容,那么我想直接拒绝它,而不是试图替换它

我还希望在jQuery端执行此操作,并将其绑定到textfield,以便在有人试图输入非英语字符时抛出错误。我想即使是像
á
这样的变音字符也不应该被允许


我使用的是ColdFusion 10、jQuery 1.9和jQuery Validate,您可以使用相同的正则表达式来验证字段。在正则表达式周围添加锚点,以确保没有任何内容被预先设定或后跟正则表达式匹配的字符串

^[^a-z0-9]$
  • ^
    将正则表达式锚定在字符串的开头

  • $
    将正则表达式锚定在字符串的末尾

例如:

可以使用match函数确保字符串与正则表达式匹配

^[^a-z0-9]$
范例

var str = "نازنین"; 
if(str.match(/^[a-z0-9]+$/gi))
{
    //Do something 
}
else
{
    // Do something else
}

您可以使用DeAccent UDF(java):


如果希望使用jQuery进行验证,可以通过向ColdFusion服务器发出ajax请求来执行。您可能应该这样做,以确保字符串是唯一的,正如您所说的,您计划创建子目录/虚拟路径。

thank You@nu11p01n73R我使用了这个正则表达式,它似乎是唯一的working@volumeone欢迎:)很高兴听到我能帮上忙我的最终解决方案是做一个有条件的陈述像这样检查名称
…拒绝名称用于非英语字母字符。如果返回一个值,那么名称将被拒绝,所以让我直截了当地说,@volumeone。。。你会拒绝佩尼亚先生的名字,但R2D2可以吗?[boggle]。@AdamCameron是的,没错。在我找到将佩尼亚转换为佩纳的方法之前,如果你说你不希望人们输入“非英语”字符,那么你实际上是在告诉一些用户,为了使用你的应用程序,他们需要故意拼错自己的名字。这是一种可怕的用户体验。更好的解决方案可能包括使用某种服务器端流程,尝试将用户名翻译成“英语”,然后使用该流程,或者,不使用用户名,而是使用一个表单字段,他们可以输入他们想要的内容作为URL的一部分,并且只允许“英语”;这里的字符。他们没有拼写错误。例如,有些人的名字是用泰语字母书写的。他们所要做的就是用英文字符拼写。如果用户的名字是Carlos Peña,你的商业规则将迫使他拼写Carlos Pena,而不是它的拼写方式。因此,你的商业规则会迫使他故意拼错他的名字。我知道这很容易,但不是一个理想的解决方案。我喜欢把事情做对而不是简单。
if (originalString NEQ deAccent(originalString)){
   writeOutput("Invalid String");
}