正则表达式在Windows XP中的有效文件名

时间:2013-01-30 10:42:53

标签: javascript regex

我有一个文本字符串,它成为保存的文件名的一部分。我需要删除任何非法字符(即非字母数字,只有基于拉丁语的字符)

这是我到目前为止所做的:

想出来,正则表达式恢复正常!

function isValidFilename(fname)
{ 
  var rexp = new RegExp(/[^a-zA-Z0-9]/gim)
  return fname.replace(rexp, "")
}

var v = "my$filename"
alert(v + "\nis valid???\n\n" + isValidFilename(v))

v = "myfilename"
alert(v + "\nis valid???\n\n" + isValidFilename(v))

2 个答案:

答案 0 :(得分:2)

在另一个问题中发现了这一点:

/^[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_ ]+$/

取自:Javascript regex for validating filenames

也许你可以用这个来得到你想要的吗?

答案 1 :(得分:2)

您应该验证有效字符而不是删除无效字符

^在[]组内部将否定该组。

您可以使用替换为/ [^^ A-Za-z0-9.-]/来删除不属于该组的所有字符