我正在使用JavaScript,我想在引号(' \'在这里\'')中匹配尾随空格,之后我会更换与空字符串匹配。
示例:' abc cde '
应为' abc cde'
现在我的这个没有引号:[^\S]+$
有什么想法吗?
更新:
我的问题可能不够明确,我有类似'\'HALO \''
这样的东西,我想删除那些转义引号中的尾随空格。
答案 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+'$/, "'"));
答案 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);