我有一个文本字符串,成为保存下来的文件名的一部分。我需要删除任何非法字符(即非字母数字,仅基于拉丁字符)
这是我到目前为止的内容:
弄清楚了,regex-fu水平恢复正常!
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))
最佳答案
您应该针对有效字符进行验证,而不是删除无效字符
[]组中的^将否定该组。
您可以使用替换为/[^A-Za-z0-9.-]/来消除不属于该组的所有字符