2017-07-18 43 views
0

因为这是我在StackOverflow上的第一个问题,我希望我会正确地做到这一点。 当谈到JS时,我是一个新手,所以我现在问社区。当输入字段的正则表达式匹配时突出显示提交按钮

我正在一个小网站上,您可以添加URL或IP来显示服务器状态。正则表达式正在工作,但我不想将它添加到html的源代码中,以防止黑客可以删除“required pattern =”并添加任何内容。这就是为什么我尝试在JS中构建脚本的原因。如果有比JS更好的选择,我会使用它。

目前按钮只在键入内容时突出显示,如果输入与我的正则表达式匹配,如果它是URL或IP,我希望突出显示按钮。

我现在的剧本是这样的:

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; 
    } 
} 

我在哪里有,增加了对正则表达式的变量或东西吗?

在此先感谢所有试图帮助我的人!

+0

什么是你想匹配的变量或输入值? – Rashid

+0

你必须改变'elem.value ==“'''elem.value.test(/ regex /)' – guijob

+0

@Rashid我想添加URL或IPs,比如stackoverflow.com或者IP。目前,整个功能可以在字段中使用“require pattern =”,但我希望使用更好的选项来防止可能使用解决方法的源代码黑客添加每种输入。 – ArchUser1337

回答

0

使用此:

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

与if规则看起来不错,但遗憾的是它不会突出显示每个输入..即使我在我的index.php使用它在如那些已经工作的正则表达式匹配“需要的图案=” – ArchUser1337

+0

形式的代码如下所示:

\t \t \t \t \t \t \t \t
\t \t \t \t <按钮类型=”提交“class =”btn btn-success“id =”add-button“>添加服务器到列表 – ArchUser1337

+0

你需要什么图案或其他东西? – Rashid