【发布时间】:2015-01-30 20:23:22
【问题描述】:
我想替换用户选择的单词中的特殊字符。
我把代码写成
var name = "and";
var text = "viverra*.and standard'android viverra'.Vivamus (sit amet felis) scelerisque) ullamcorper (erat) eu mat)tis lorem.";
name = name.replace(new RegExp(/\[(.*?')\]/g), '');
var escaped= name.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$&")
var regexp = new RegExp("\\b(" + escaped + ")\\b", "g");
console.log(text.replace(regexp, "_$&_"));
它为准确的单词提供正确的输出,
viverra*._and_ standard'android viverra'.Vivamus (sit amet felis) scelerisque) ullamcorper (erat) eu mat)tis lorem.
但是当用户选择时
name=(sit amet felis) scelerisque) or (erat) or viverra' or viverra*.
它确实替换了特殊字符。
当我把第 5 行写成
var regexp = new RegExp(escaped, "g");
它将删除所有特殊字符,但与确切的单词不匹配并给出“and”的输出,
viverra*._and_ st_and_ard'_and_roid viverra'.Vivamus (sit amet felis) scelerisque) ullamcorper (erat) eu mat)tis lorem.
请帮助我。我想替换特殊字符,也想匹配确切的单词....
【问题讨论】:
-
真的很聪明的问题
标签: javascript regex