如何使用regexp验证表单输入javascript

时间:2017-06-06 10:40:55

标签: javascript html regex forms

我是初学者使用JavaScript,我已经阅读了RegExp的文档,并通过几个例子,但我无法弄清楚如何正确使用它。 我有一个包含5个输入字段的表单。 我需要使用RegExp 来验证表单中的用户输入。禁止的值是

(){}' ! #“\ /

允许使用其他字符,但在提交表单之前,必须输入所有输入字段(不允许空白/空字段)。

输入字段ID =" unos_naziv_proizvoda"必须包含至少5个字符并以大写字母开头。 输入字段id =" unos_opis_proizvoda"必须包含至少3个句子。句子以大写字母开头,以点结尾。 输入字段ID =" unos_datum_proizvodnje"制造日期必须是dd.mm.yyyy的形式,不能在将来(必须更低或与今天相同)并且必须是文字类型

这是HTML代码:

<form id="forma_prijava" class="forma_novi_proizvod"  action="http://barka.foi.hr/WebDiP/2016/materijali/zadace/ispis_forme.php" method="POST">
            <label for="unos_naziv_proizvoda">Naziv proizvoda</label>
        <input type="text" name="naziv_proizvoda[15]" id="unos_naziv_proizvoda" placeholder="Unesite naziv proizvoda" maxlength="15">
            <label for="unos_opis_proizvoda">Opis proizvoda</label>
        <textarea name="opis_proizvoda" id="unos_opis_proizvoda" placeholder="Ovdje unesite opis proizvoda" rows="50" cols="100"></textarea>
            <label for="unos_datum_proizvodnje">Datum proizvodnje</label>
        <input type="date" name="datum_proizvodnje" id="unos_datum_proizvodnje">
            <label for="unos_vrijeme_proizvodnje">Vrijeme proizvodnje</label>
        <input type="time" name="vrijeme_proizvodnje" id="unos_vrijeme_proizvodnje">
            <label for="unos_kolicina_proizvodnje">Količina proizvodnje</label>
        <input type="number" name="kolicina_proizvodnje" id="unos_kolicina_proizvodnje" placeholder="Unesite količinu proizvodnje" min="1">

            <button type="Submit" value="Submit">Dodaj proizvod</button>
            <button type="Reset" value="Reset">Poništi unos</button>
        </form>

这是js代码:

window.onload = function(){
    var provjeri = function(){
        var re = new RegExp(/[^(){}'!#"\/]/, g);
        var uzorak = document.getElementById("forma_prijava"); //id of a form //
        var ok = re.test(uzorak.value);
        if(!ok){
            alert("Niste unijeli valjani tekst"); //alert message if it's not valid input //
            return false;
        }
        else{
            alert("OK"); // message if it's valid input //
            return true;
        }
    };
    document.getElementById("forma_prijava").addEventListener("oninput", provjeri);
};

我不知道我是应该将它作为一个单元还是在每个输入字段上单独使用它,因为我有不同类型的输入字段(两个是文本,其他是日期,时间和数字)。如果有人在提供示例时可以提供更易理解的解释,我将不胜感激。 :) 再次指出它,我严格必须使用RegExp(纯JavaScript),没有其他的库或框架不会出现! 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用输入标记

的属性SqlCommand cmd = SqlConnectionOLTP.cn.CreateCommand(); cmd.CommandText = "Insert into Cost(ProjectID,PropertyID,CostCategoryID,EstimatedAmount) values ('" + ProjectID + "','" + PropertyID + "','" + CostCatID + "'," + "'" + textBoxAmount.Text + "') "; cmd.ExecuteNonQuery(); SqlConnectionOLTP.cn.Close(); MessageBox.Show("Saved");
pattern