1

我在用

  Regex re = new Regex("[;\\/:~+%^#@&*?\"<>|&']");
        strFileName = re.Replace(strFileName, "_");

c#中的操作。

我需要使用与 jquery 操作相同的正则表达式

var strFileName = strFileName .replace(/[^-0-9a-zA-Z.]/g, "_");

但它不起作用。提前致谢。

4

2 回答 2

2

当我尝试这个时:

var strFileName = "whatever%#.jpg$";
strFileName = strFileName.replace(/[^\0-9a-zA-Z.]/g, "_");
alert(strFileName);

它给了我"whatever__.jpg_"

根据您提供的其他测试用例,如果我"wh-atever%#.jpg$"输入"wh_atever__.jpg_".

在此处查看工作演示:http: //jsfiddle.net/jfriend00/r5V9d/

如果这对您不起作用,那么您可能在其他地方遇到了脚本错误,导致该脚本无法正常工作(检查浏览器错误控制台是否有脚本错误),或者您的代码中还有其他未披露的内容。

于 2013-11-07T05:04:39.093 回答
1

从您对评论的回复来看,您似乎有一些特殊字符没有被替换,您可以在对其进行细微调整后使用您的第一个正则表达式,这是您的修改版本

var thumbnail = "test%#$#\\^:-(filename.jpg";
thumbnail  = thumbnail .replace(/[;\\/:~+%^#@&*?\"<>|&'\$\-\(\)]/g, "_")

缩略图会"test_________filename.jpg" 试一试

于 2013-11-07T05:11:19.037 回答