2017-07-18 1 views
0

parce que c'est ma première question sur StackOverflow J'espère que je le ferai correctement. Je suis un débutant total quand il s'agit de JS, c'est pourquoi je demande à la communauté maintenant.Mettez en surbrillance le bouton Envoyer lorsque la regex du champ de saisie correspond à

Je travaille sur un petit site Web où vous pouvez ajouter des URL ou des adresses IP pour afficher l'état d'un serveur. La regex fonctionne mais je ne veux pas l'ajouter dans le code source sur html, pour empêcher les pirates informatiques qui pourraient simplement supprimer "required pattern =" et ajouter quoi que ce soit alors. C'est pourquoi j'essaye de construire un script dans JS. S'il y a une meilleure option que JS je l'utiliserais.

Actuellement, le bouton n'est mis en surbrillance que lorsque vous tapez quelque chose, j'aimerais mettre en surbrillance le bouton si l'entrée correspond à mon regex, s'il s'agit de l'URL ou IP.

Mon script actuel ressemble à ceci:

window.onload = function(){ 

    document.getElementById("add-button").disabled = true; 
} 

function checkForm(elem) { 
    var button = document.getElementById("add-button"); 
    if(elem.value == "" || elem.value.length == 0) { 
     button.disabled = true; 
    } 
    else { 
     button.disabled = false; 
    } 
} 

Où dois-je ajouter une variable ou quelque chose pour l'expression rationnelle?

Merci d'avance à tous ceux qui essaient de m'aider!

+0

Quelle est la valeur variable ou entrée que vous souhaitez matchs? – Rashid

+0

vous devez changer 'elem.value ==" "' 'elem.value.test (/ regex /)' – guijob

+0

@Rashid Je voudrais ajouter des URL ou des adresses IP comme stackoverflow.com ou l'adresse IP. Actuellement, toute la fonction fonctionne avec "require pattern =" dans le champ mais je voudrais utiliser une meilleure option pour empêcher les pirates de code source qui pourraient utiliser une solution de contournement pour ajouter chaque type d'entrée. – ArchUser1337

Répondre

0

Utilisez ceci:

function checkForm(elem) { 
    var ptn = /^((https?|ftp)(:\/\/))(www\.)?[a-zA-Z0-9]+\.[\w+.-]/g; 
    if(ptn.test(elem.value)){ 
     var button = document.getElementById("add-button"); 
     if(elem.value == "" || elem.value.length == 0) { 
      button.disabled = true; 
     }else { 
      button.disabled = false; 
     } 
    }else{return false;} 
} 
+0

semble bien avec la règle if, mais malheureusement, il ne met pas en évidence sur chaque entrée .. même si elle correspond à l'expression rationnelle qui fonctionne déjà quand je l'utilise dans le dans mon index.php comme « motif requis = » – ArchUser1337

+0

le code de forme ressemble à ceci:

\t \t \t \t \t \t \t \t
\t \t \t \t ArchUser1337

+0

Qu'est-ce que vous avez besoin de modèle ou d'autres choses? – Rashid