我有4个案例:(我的重点是这部分:... *{anything}* ...
)
var str = "this * is * a test";
var str = "this *is * a test";
var str = "this * is* a test";
var str = "this *is* a test";
我想要所有这些输出:
var newstr = "this *is* a test";
我怎样才能做到这一点?
<小时/>注意:如果我可以对“*”、“`”、“~”、“_”等多个字符执行此操作,那就完美了。
最佳答案
我最初以为您想要替换后面跟着空格的星号。
使用替换
函数
string.replace(/(\*+)[\t\n\r]*(.*?)[\t\n\r]*(\*+)/g,'$1$2$3')
分割
\*+
星号默认匹配零个或多个字符。由于您正在寻找字面星号,因此必须使用反斜杠对其进行转义。使用 +
修饰符是因为我们要搜索一个或多个星号
\t*
- 如上所述,星号代表零个或多个字符。在本例中,我们正在搜索空白字符
(.*?)
- 匹配任何字符。 ?
标识符表示零或一。
[\t\n\r]*
- 这会查找任何空白字符。可以简化为\s
/g
- 全局标志,表示搜索所有实例。
$1-$9
- 这些是特殊的 JavaScript 正则表达式对象。
括号匹配捕获组,上面的示例中有三个。
此解决方案归功于 Adaneo。
关于javascript - 如何删除特定字符前后的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865706/