从字符串中的单词的开头和结尾删除标点符号

cst*_*dio 2 javascript regex jquery

我有一个字符串,我想- ,( ,) ,& ,$ ,# ,! ,[ ,] ,{ ,} ," ,'从单词的开头或结尾删除任何字符串.如果它之间的话就是忽略那些.

这是一个例子:

var $string = "Hello I am a string, and I am called Jack-Tack!. My -mom is Darlean.";
Run Code Online (Sandbox Code Playgroud)

我想在正则表达式之后上面的文字是这样的:

console.log("Hello I am a string and I am called Jack-Tack My mom is Darlean");
Run Code Online (Sandbox Code Playgroud)

Wla*_*ant 8

您可以使用这样的事实:\b正则表达式始终在单词边界处\B匹配,而仅在没有单词边界的情况下匹配.你想要的只是当它的一侧有一个单词边界而不是另一面有字边界时才删除这组字符.这个正则表达式应该:

var str = "Hello I'm a string, and I am called Jack-Tack!. My -mom is Darlean.";
str = str.replace(/\b[-.,()&$#!\[\]{}"']+\B|\B[-.,()&$#!\[\]{}"']+\b/g, "");
console.log(str); // Hello I'm a string and I am called Jack-Tack My mom is Darlean
Run Code Online (Sandbox Code Playgroud)