正则表达式匹配引号内的尾随空格

时间:2017-09-27 14:49:52

标签: javascript regex

我正在使用JavaScript,我想在引号(' \'在这里\'')中匹配尾随空格,之后我会更换与空字符串匹配。

示例:' abc cde '应为' abc cde'

现在我的这个没有引号:[^\S]+$

有什么想法吗?

更新:

我的问题可能不够明确,我有类似'\'HALO \''这样的东西,我想删除那些转义引号中的尾随空格。

3 个答案:

答案 0 :(得分:1)

'  abc   cde     '.replace(/(\s)*$/, '')

这适用于所有情况吗?

看看它是如何工作的: regex visualization

它在字符串末尾搜索0到多个空格,并用空字符串替换它。

注意:如果您需要它与实际的'最后用这个:

'\'  abc   cde     \''.replace(/(\s)*'$/, '\'')

这个人期待一个'最后,然后替换所有空格和'只有'

如果您需要修复可能会或可能没有的字符串。最后,连续使用.replace(),你应该覆盖两个案例,因为它们不重叠;)

答案 1 :(得分:1)

var str = "'   abc  def   '";
console.log(str.replace(/\s+'$/, "'"));

str = "'   abc  def'";
console.log(str.replace(/\s+'$/, "'"));

https://jsbin.com/rowomah/edit?js,console

https://regex101.com/r/3BXlhB/2

答案 2 :(得分:0)

你的正则表达式没问题,但你有一个带有[^...]的双重否定模式\S

您实际上可以使用此模式:

\s+$

<强> Working demo

代码

const regex = /\s+$/gm;
const str = `  abc   cde     `;
const subst = ``;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);