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

标签 javascript jquery regex

我有一个字符串,我想删除任何 - ,( ,) ,& ,$ ,# ,! ,[ ,] ,{ ,} ,",' 从单词的开头或结尾。如果它位于单词之间,则忽略它们。

这是一个例子:

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/

相关文章:

javascript - Meteor js Iron 路由器 - 登录后如何重定向?

javascript - 当图像发生变化时如何调用 jQuery 函数?

javascript - jquery 不支持无限滚动

javascript - 未选择文件时禁用提交按钮

regex - Vim 函数通过正则表达式从 Git URL 中剥离所有者/存储库

c - 正则表达式 C 中奇怪的空白字符行为

javascript - Onload清除所有文本字段jquery js

javascript - AJAX、JS和Fancybox,如何使其正常工作?

javascript - 如何告诉 Chrome,请为每个站点或任何操作使用浏览器中的本地 javascript?类似于 歌剧

javascript - 在引号之间匹配 HTML 打开标签