非英语字符的正则表达式

时间:2011-01-27 06:14:20

标签: javascript

  

可能重复:
  reject if file name contains non english character

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

2 个答案:

答案 0 :(得分: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
}

根据需要添加到允许的字符列表中,但确保连字符位于列表的末尾,或者使用\-将其转义。

答案 1 :(得分: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!");
}