Ank*_*nky 4 javascript regex validation jquery
我想验证文件夹名称,它不应以数字或任何特殊字符开头,我不确定文件夹名称中允许使用哪些特殊符号,请帮忙。
这是我的功能
function validateFileName() {
var re = /[^a-zA-Z0-9\-]/;
if(!re.test($('#new_folder_name').value)) {
alert("Error: Input contains invalid characters!");
$('#new_folder_name').focus();
return false;
}
// validation was successful
return true;
}
Run Code Online (Sandbox Code Playgroud)
以下特殊字符被保留:
< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
Run Code Online (Sandbox Code Playgroud)
并且以下关键字也被保留
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9.
Run Code Online (Sandbox Code Playgroud)
哪些是鼓励案例的。
因此,考虑到这些事实,可能的正则表达式可以是:
[^<>:"/\|?*(?:aux|con|nul|prn|com[1-9]|lpt[1-9])]
Run Code Online (Sandbox Code Playgroud)
所以你的变换后的函数将是
function validateFileName() {
var re = /[^<>:"/\|?*(?:aux|con|nul|prn|com[1-9]|lpt[1-9])]/;
if(!re.test($('#new_folder_name').value)) {
alert("Error: Input contains invalid characters!");
$('#new_folder_name').focus();
return false;
}
// validation was successful
return true;
}
Run Code Online (Sandbox Code Playgroud)