2011-01-27 140 views
-3

可能重复:
reject if file name contains non english character正则表达式对非英文字符

如何检查文件名包含非英文字符像 思科-S11-POA1800005815-Inv04736851-100919重做没有。 pdf我需要避免非英文字符

+1

允许使用哪些字符? – Phrogz 2011-01-27 06:17:02

+0

定义“非英文”字符的含义。 – 2011-01-27 06:19:17

+3

重复[拒绝如果文件名包含非英文字符](http://stackoverflow.com/questions/4790950/reject-if-file-name-contains-non-english-character),昨天由同一用户问及没有答案被接受。 @vijay:重新问你的问题绝对不是获得积极帮助的方法。 – Phrogz 2011-01-27 06:22:37

回答

3
// Disallow anything but a-z, 0-9, underscore, period, hyphen, and comma 
var disallowed = /[^a-z0-9_.,-]/i; 
if (disallowed.test(myFileName)){ 
    // do something here 
} 

添加到您认为合适的允许字符列表,但确保连字符位于列表的末尾,否则使用\-进行转义。

3

正确的答案取决于了解你的字符集。

但正则表达式是这样的:

var re = /[\x80-\xFF]/; 
if (re.match(...)) { 
    alert("File name contains non-ASCII character!"); 
} 

是一个快速的答案。

请注意,如果您的文件名包含任何特殊符号,它也会投诉。

也许白名单,只说允许的字符,是一个更好的选择,像这样?

var re = /[^A-Za-z0-9_,.-]/; 
if (re.match(...)) { 
    alert("File name contains non-ASCII character!"); 
} 
相关问题