我有一个字符串,我想删除任何 - ,( ,) ,& ,$ ,# ,! ,[ ,] ,{ ,} ,",'
从单词的开头或结尾。如果它位于单词之间,则忽略它们。
这是一个例子:
var $string = "Hello I am a string, and I am called Jack-Tack!. My -mom is Darlean.";
我希望上面的文本在正则表达式之后像这样:
console.log("Hello I am a string and I am called Jack-Tack My mom is Darlean");
最佳答案
您可以利用以下事实:正则表达式中的 \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
关于javascript - 删除字符串中单词开头和结尾的标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110382/