需要消除无效字符并检查长度

时间:2014-06-05 21:18:18

标签: javascript html

我需要对字符串进行验证。它不应该允许任何特殊字符和长度应该小于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.");}                    
        }
    })
})

3 个答案:

答案 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.");}



            });

});

http://jsfiddle.net/Yr9zs/2/

答案 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)) {

另请注意正则表达式中添加的\_\-以支持下划线。

http://jsfiddle.net/7q2Pq/2/