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-非常清楚,非常感谢!