在客户端javascript上进行验证

时间:2018-07-27 09:04:26

标签: javascript asp.net validation

我正在使用asp.net进行简单的项目,我创建了一个表单,用户可以在其中上传文件。在将数据存储到客户端之前,我采取了变通办法来检查文件扩展名,如果文件不是图像,则停止回发

function checkFileExtention() {
            
var file = document.getElementById('FileUpload1').value;
var lastIndex = file.lastIndexOf(".");
var fileExt = file.substr(lastIndex + 1).toLowerCase();

            var isValidExtention=0;
            var i;
            var extArray = ["jpg", "png", "gif", "jpeg"];
           
            for (i = 0; i < extArray.Length; i++) {
                
                if (fileExt == extArray[i]) {

                    isValidExtention = 1;
                    return true;
                    break;
                }

                else {
                    document.getElementById("demo").innerText = "invalid";
                    return false;
                    isValidExtention = 0;
                }


            }
         
            
        }
<asp:LinkButton ID="addButton" runat="server" type="submit" CausesValidation="true" 
OnClick="addButton_Click" OnClientClick="if (!checkFileExtention()) {return false;}">Add</asp:LinkButton>

但是我遇到了一些问题,我无法显示警报或无法在for循环内设置文本 变量isValidExtention的偶数在循环外始终为0

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:2)

您可以尝试一下,

function checkFileExtention() {
       var file = document.getElementById('FileUpload1').value;
        if (file != "") {
            var fileExt  = file.match(/\.([^\.]+)$/)[1];
             var isValidExtention=0;
            var i;
            var extArray = ["jpg", "png", "gif", "jpeg"];

        for (i = 0; i < extArray.Length; i++) {

            if (fileExt.toLowerCase() == extArray[i]) {

                isValidExtention = 1;
                document.getElementById("demo").innerText = "";                   
                break;
            }
            else {
                document.getElementById("demo").innerText = "invalid";
                isValidExtention = 0;                   

            }
    }
});

第二种检查文件扩展名的方法,

function checkFileExtention() {
       var file = document.getElementById('FileUpload1').value;
        if (file != "") {
            var ext = file.match(/\.([^\.]+)$/)[1];
            var isValidExtention=0;
            ext.toLowerCase();
            if (ext == "png" || ext == "jpg" || ext == "jpeg" || ext=="gif") {
                isValidExtention = 1;
                    return true;                   
            }
            else {
               document.getElementById("demo").innerText = "invalid";
               isValidExtention = 0;
               return false;

            }
        }
    });

答案 1 :(得分:1)

代码中的唯一问题是小错误,就像您使用“长度”而不是长度一样。我修改了您的代码,请看一看。

function checkFileExtention() {
        var file = document.getElementById('FileUpload1').value;
        var lastIndex = file.lastIndexOf(".");
        var fileExt = file.substr(lastIndex + 1).toLowerCase();

        var isValidExtention = false;
        var i;
        var extArray = ["jpg", "png", "gif", "jpeg"];
        for (i = 0; i < extArray.length; i++) {
            if (fileExt == extArray[i]) {
                isValidExtention = true;
                document.getElementById("demo").innerText = "";
                break;
            }
            else {
                document.getElementById("demo").innerText = "invalid";
            }
        }
        return isValidExtention;
    }

答案 2 :(得分:0)

请检查以下代码。我们限制上传文件文件是否为图片之前。

   var oFileIn = document.getElementById('fileupload');        
    if (oFileIn.addEventListener) {
        oFileIn.addEventListener('change', filePicked, false);
    }

    function filePicked(event) {
    var files = event.target.files;
    var regex = new RegExp("(.*?)\.(png|gif|jpg|jpeg)$");
    if (!(regex.test(files[0].name)))
    {
        alert('Please select image files');
        var oFileIn = document.getElementById('fileupload');
        oFileIn.value='';
        return;
    }

    }

希望对您有帮助。

感谢和问候 Angappan.S

答案 3 :(得分:0)

尝试一下:

const regex = /.+\.(jpg|jpeg|gif|png)\s*$/mig;
const str = `image.jpg
image.notmatching
capitalLetterFormat.PNG
.jpg
`;

它检查以下内容:

  1. 图像格式符合您的格式
  2. 忽略在图像末尾添加的空格
  3. 格式化图像的名称不能为空。
  4. 格式不区分大小写