Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果字符串包含此字符,如何验证该字符串?_Javascript - Fatal编程技术网

Javascript 如果字符串包含此字符,如何验证该字符串?

Javascript 如果字符串包含此字符,如何验证该字符串?,javascript,Javascript,我制作了一张纸条来验证字符串是否包含一些字符。但是,我对这个字符串有一个问题 这是我的剧本: var special_char = ['|', '/', '&', ' ', '$', '@', ';', '*', '%', '.', ',']; var file_name_ext = upl_data.substring(upl_data.lastIndexOf("\\") + 1, upl_data.length); var file_name = file_name_ext

我制作了一张纸条来验证字符串是否包含一些字符。但是,我对这个字符串有一个问题

这是我的剧本:

var special_char  = ['|', '/', '&', ' ', '$', '@', ';', '*', '%', '.', ','];
var file_name_ext = upl_data.substring(upl_data.lastIndexOf("\\") + 1, upl_data.length);
var file_name     = file_name_ext.split('.');               
var isVerified    = 0;

    for (var i = 0; i < special_char.length; i++){                  
        if(file_name[0].indexOf(special_char[i]) == -1) {                       
            isVerified += 0;                     
        } else {
            isVerified += 1;
        }
    }

    if(isVerified != 0){
        alert("NOT OK");
    }
    else{ alert("OK"); }
在遇到以下字符串之前,上述脚本运行良好:
三十、 YYY.pdf。因为我用了。并使用文件名[0],它将忽略所有特殊字符。如何解决此问题?

您可以使用以下正则表达式获取文件名,而无需扩展名:

var文件='xxx.yyy.pdf', filename=file.match/+?=\。\w+$/[0];
console.logfilename 您可以使用以下正则表达式获取不带扩展名的文件名:

var文件='xxx.yyy.pdf', filename=file.match/+?=\。\w+$/[0]; console.logfilename var文件\u name\u ext=XXX.YYY.pdf var file_name=file_name_ext.slice0,file_name_ext.lastIndexOf'.'; console.logfile_name var文件\u name\u ext=XXX.YYY.pdf var file_name=file_name_ext.slice0,file_name_ext.lastIndexOf'.';
console.logfile\u nameUh。。。不在上拆分。?使用。我们还可以检查indexOf'.==lastIndexOf'.'如果不是error@melpomene我用这个分开。要删除该文件extension@Vahn为什么不验证整个字符串,包括扩展名?呃。。。不在上拆分。?使用。我们还可以检查indexOf'.==lastIndexOf'.'如果不是error@melpomene我用这个分开。要删除该文件extension@Vahn为什么不验证整个字符串,包括扩展名呢?Alexander,您介意解释一下上面的内容吗?只是想了解一下这一行代码-/。+?=\。\w++/。谢谢@rishijd,这个?=。。。是零宽度正向前瞻断言。因此,正则表达式捕获一个或多个任意字符。+在以句点\开头的子字符串之前,包含一个或多个数字或字母\w+,并以字符串$结尾。详情请参阅。非常感谢@Alexander-非常清楚,非常感谢!亚历山大,你介意再解释一下吗?只是想了解一下这一行代码-/。+?=\。\w++/。谢谢@rishijd,这个?=。。。是零宽度正向前瞻断言。因此,正则表达式捕获一个或多个任意字符。+在以句点\开头的子字符串之前,包含一个或多个数字或字母\w+,并以字符串$结尾。详情请参阅。非常感谢@Alexander-非常清楚,非常感谢!