2013-05-21 3 views
1

У меня есть javascript, написанный для проверки того, что строка является буквенно-цифровой, но мне просто интересно, как я могу добавить код для включения дефиса (-) и косой черты (/) в качестве допустимых входов. Вот мой текущий код:Проверка специального символа

function validateAddress() { 
    var address = document.getElementById('address'); 

    if (address.value == "") { 
    alert("Address must be filled out"); 
    return false; 
    } else if (document.getElementById('address').value.length > 150) { 
    alert("Address cannot be more than 150 characters"); 
    return false; 
    } else if (/[^a-zA-Z0-9\-\/]/.test(address)) { 
    alert('Address can only contain alphanumeric characters, hyphens(-) and back slashs(\)'); 
    return false; 
    } 
} 
+1

Добавить дефисы и косые черты в группу персонажей ...? – deceze

ответ

10

Просто добавьте их в группу символов. Конечно, потому что оба - и / специальные символы в этом контексте (/ заканчивает RegExp, - выражает диапазон), вам нужно, чтобы избежать их предшествующее \:

function validateAddress(){ 
    var TCode = document.getElementById('address').value; 

    if(/[^a-zA-Z0-9\-\/]/.test(TCode)) { 
     alert('Input is not alphanumeric'); 
     return false; 
    } 

    return true;  
} 
+0

О, это просто, спасибо вам за информацию. – AJJ

+0

Включает ли это: à, è, ê, etc? – AlexioVay

+0

@Vaia no, это не будет - вам придется использовать более сложные функции RegExp для этого: есть хороший ответ об этом [здесь] (http://stackoverflow.com/a/8923865/356541) – Barney

1
function isValidCharacter(txtTitle) { 
    var title = document.getElementById(txtTitle); 
    var regExp = /^[a-zA-Z]*$/ 
    if (!regExp.test(title.value)) { 
     title.value = ''; 
     return false; 
     } 
     else {  
      return true; 
     } 
    } 


function Validation(){ 
var txtTitles = document.getElementById('txtTitle'); 
    if (isValidCharacter(txtTitles.id) == false) { 
    alert("Please enter valid title. No special character allowed.");   
    return false; 
    } 
} 



    $("#Btn").unbind("click").click(function() { 
     if (Validation() == false) { 

     } 
     else { 
       //success  
     } 
    } 
0

function namefun(c) 
      { 
       var spch=/[A-z\s]/ig; 
       var dig=/[0-9]/g; 
       var ln=c.length; 
       var j=1; 
       for(var i=0;i<ln;i++) 
       { 
        var k=c.slice(i,j); 
        if((spch.test(c)==false)||(dig.test(c)==true)) 
        { 
         alert("Invalid name"); 
         document.getElementById('tname').value=""; 
         ln=0; 
         setTimeout(function(){tname.focus();}, 1); 
         //return false; 
        } 
        j++; 
       } 

      } 
Смежные вопросы