我需要一些涉及国际角色的正则表达式的帮助。我有一个字符串如下
var text = "'#'Hello' Mo'nique! ''Привет марина!@¿";
我希望在单词之前和之后删除特殊字符,而不是像这样的
之间的特殊字符Hello Mo'niqueПриветмарина
我试过了
var result = text.replace(/[`~¡!@#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]/g,'');
但是会删除所有特殊字符并返回
Hello MoniqueПриветмарина
答案 0 :(得分:0)
将negative look-ahead assertion与word boundaries一起使用,以避免两个单词之间的符号。
var text = "'#'Hello' Mo'nique! ''Привет марина!@¿";
var result = text.replace(/(?!\b.\b)[`~¡!@#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]/g,'');
console.log(result);
&#13;
答案 1 :(得分:-1)
使用锚点来匹配字符串的开头和结尾
^[`~¡!@#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]+|[`~¡!@#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]+$