如何在特定字符之后删除空格?

时间:2016-01-18 23:02:38

标签: javascript jquery regex

我有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"; 

我该怎么做?

注意:如果我可以为多个字符执行此操作,例如' *','`','〜' ,' _'那将是完美的。

3 个答案:

答案 0 :(得分:4)

我最初认为你正在寻找替换后面跟空格的星号。

使用select productid from yourtable group by productid having max(case when attribute = 'Size' then value end) = 'Big' and max(case when attribute = 'Weight' then value end) = 'Heavy' 功能

replace

击穿

string.replace(/(\*+)[\t\n\r]*(.*?)[\t\n\r]*(\*+)/g,'$1$2$3') 默认情况下,星号匹配零个或多个字符。由于您正在寻找文字星号,因此必须使用反斜杠进行转义。使用\*+修饰符是因为我们正在搜索一个或多个星号

+ - 如上所述,星号表示零个或多个字符。在这种情况下,我们正在搜索空白字符

\t* - 这匹配任何角色。 (.*?)标识符表示零或一。

? - 这会找到任何空格字符。它可以简化为[\t\n\r]*

\s - 全局标志,表示搜索所有实例。

/g - 这些是特殊的JavaScript正则表达式对象。

括号匹配捕获组,在上面的示例中有三个。

此解决方案归功于Adaneo。

答案 1 :(得分:3)

遵循alpha bravo的想法,如果要添加所有多个字符,可以添加选项列表:

([\*|\`|\~|\_]+)\s*(.*?)\s*([\*|\`|\~|\_]+)

并将其替换为$1$2$3

Demo

答案 2 :(得分:2)

使用此模式

(\*+)\s*(.*?)\s*(\*+)

并替换为$1$2$3

Demo

以下评论编辑