2016-01-14 21 views
2

我想檢查fileExt是否在avoidExt中,並在if...else語句中使用它。jQuery檢查字符串是否在RegExp中

var thisFile=$(this).val();     //returns "file.jpg" 
var fileExt = thisFile.replace(/^.*\./, ''); //return "jpg" 
var avoidExt= new RegExp(/(\.|\/)(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i); 
+0

你的意思'fileExt'在'thisFile'? –

+0

從模式中刪除'(\。| \ /)',或者使其成爲可選:'[。\ /]?'。 –

+0

'fileExt'是'jpg'等文件的擴展名。 – user3284463

回答

0

您可以使用RegExp.prototype.test()

var thisFile = "file.jpg"; 
 
var fileExt = thisFile.replace(/^.*\./, ''); //return "jpg" 
 
var avoidExt = new RegExp(/(\.|\/)(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i); 
 

 
console.log(avoidExt.test('.' + fileExt) ? 'fileExt is in' : 'fileExt is not in');

UPDATE:IF...ELSE格式

var thisFile = "file.jpg"; 
 
var fileExt = thisFile.replace(/^.*\./, ''); //return "jpg" 
 
var avoidExt = new RegExp(/(\.|\/)(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i); 
 

 
if (avoidExt.test('.' + fileExt)) 
 
    console.log('fileExt is in') 
 
else 
 
    console.log('fileExt is not in');

或者沒有必要使用正則表達式來提取擴展,你可以做以下

var thisFile = "file.jpg"; 
 
var avoidExt = new RegExp(/(\.|\/)(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i); 
 

 
console.log(avoidExt.test(thisFile) ? 'fileExt is in' : 'fileExt is not in');

0

入住這

var thisFile=$(this).val(); 
 
var fileExt = thisFile.replace(/^.*\./, ''); 
 
var avoidExt= new RegExp(/(\.|\/)(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i); 
 
if(fileExt.test(avoidExt)){ 
 
    console.log("EXIST"); 
 

 
}else{ 
 
    console.log("NOT EXIST"); 
 
    } 
 

0

也許這將幫助

var thisFile = $(this).val(); 
// var fileExt = thisFile.replace(/^.*\./, ''); doesn't need this line 
var avoidExt= new RegExp(/(\.|\/)(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i); 
if(avoidExt.test(thisFile)){ 
    // exist 
}else{ 
    // doesn't exist 
} 
0

沒有必要創建一個RegExp對象,你可以使用字面正則表達式:

var fileExt = $(this).val().replace(/^.*\./, ''); 
var avoidExt = /(bat|exe|cmd|sh|php|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)/i; 

if(fileExt.text(avoidExt)){ 
    // exist 
} else { 
    // doesn't exist 
} 
相關問題