node.js 替换正则表达式特殊字符
node.js replace regex special characters
我正在清理文件名,例如
来自
zx5-565x372.jpg?642e0d
至
zx5-565x372.jpg
具体来说,我想删除 ?
后跟 6 个小写字母数字字符。
我试过像
这样的正则表达式
modified = original.replace("\?\w{6}", "")
其中 \w
与 [a-zA-Z0-9_]
相同,{6}
是 6 个相同但没有喜悦。
有人可以告诉我正确的方法吗?
您使用的是字符串,而不是 RegExp。
var modified = original.replace(/\?\w{6}$/, "");
modified = original.replace("\?\w{6}", "")
\_______/
这只是一个字符串文字,它不是作为正则表达式模式匹配的。
你是 字面意思 将字符串 ?w{6}
替换为空字符串(因为转义的 ?
和 w
没有特殊含义)。
改为使用正则表达式文字:
modified = original.replace(/\?\w{6}/, "");
或者放宽对正则表达式的要求以防格式发生变化:
modified = original.replace(/\?.*/, "");
我正在清理文件名,例如
来自
zx5-565x372.jpg?642e0d
至
zx5-565x372.jpg
具体来说,我想删除 ?
后跟 6 个小写字母数字字符。
我试过像
这样的正则表达式modified = original.replace("\?\w{6}", "")
其中 \w
与 [a-zA-Z0-9_]
相同,{6}
是 6 个相同但没有喜悦。
有人可以告诉我正确的方法吗?
您使用的是字符串,而不是 RegExp。
var modified = original.replace(/\?\w{6}$/, "");
modified = original.replace("\?\w{6}", "")
\_______/
这只是一个字符串文字,它不是作为正则表达式模式匹配的。
你是 字面意思 将字符串 ?w{6}
替换为空字符串(因为转义的 ?
和 w
没有特殊含义)。
改为使用正则表达式文字:
modified = original.replace(/\?\w{6}/, "");
或者放宽对正则表达式的要求以防格式发生变化:
modified = original.replace(/\?.*/, "");