正则表达式不起作用

时间:2010-08-23 04:30:24

标签: javascript

尝试用连字符替换任何非字母数字字符。看不出为什么它不应该工作。它返回原始字符串不变。

item.mimetype = "image/png";

var mimetype = item.mimetype.toLowerCase().replace("/[^a-z0-9]/g",'-');

2 个答案:

答案 0 :(得分:6)

删除正则表达式周围的引号。

正如所写,Javascript正在寻找字符串 "/[^a-z0-9]/g"

// This works
"image/png".toLowerCase().replace(/[^a-z0-9]/g,'-'); 

// And if writing unquoted regular expressions makes you feel icky:
"image/png".toLowerCase().replace(new RegExp("[^a-z0-9]", "g"), '-');

// And if I might do a full rewrite:
"image/png".toLowerCase().replace(/\W/g, '-');

更多here

答案 1 :(得分:4)

你已经放了一个字符串而不是一个正则表达式。这样做:

.replace(/[^a-z0-9]/g,'-');