我需要对字符串进行验证。它不应该允许任何特殊字符和长度应该小于10 ...
以下代码无效http://jsfiddle.net/Yr9zs/
HTML
<input type="name" id ="name">
<input type="submit" id="sub" >
JS
$(document).ready(function(){
$("#sub").click(function(){
alert( $('#name').val().length)
name = $('#name').val()
if ((! /^[:a-zA-Z0-9]+$/.test(name)) or (name.length <=10)) {
alert("Sorry, Portfolio Names may contain only alphanumeric characters, hyphens, underscores, and colons.");}
}
})
})
答案 0 :(得分:1)
好吧,更改正则表达式,此or
不是有效的javascript保留字:
if ( ( /[a-zA-Z0-9\-\,\_]+$/.match(name)) || (name.length >=10))
我认为你必须检查长度和特征,因此,更改||
的{{1}}。
答案 1 :(得分:0)
对,有几件事,你错过了各种分号,&#34;或#34;比较器应该是||在javascript(通过Z键)。有关详细信息,请参见下文:)
$(document).ready(function(){
$( "#sub" ).click(function(){
alert( $('#name').val());
name = $('#name').val();
if ( (!(/^[:a-zA-Z0-9]+$/.test(name))) || (name.length >=10)) {
alert("Sorry, Portfolio Names may contain only alphanumeric characters, hyphens, underscores, and colons.");}
});
});
答案 2 :(得分:0)
问题出在这一行
if ( ( ! /^[:a-zA-Z0-9]+$/.test(name)) or (name.length <=10)) {
Javascript不支持or
这个词,而是使用||
代替,
if ( ( ! /^[:a-zA-Z0-9\_\-]+$/.test(name)) || (name.length <=10)) {
另请注意正则表达式中添加的\_
和\-
以支持下划线。