使用JavaScript RegExp匹配尾随空格,但不匹配空格行

使用JavaScript RegExp匹配尾随空格,但不匹配空格行,javascript,regex,removing-whitespace,Javascript,Regex,Removing Whitespace,我希望匹配行末尾的尾随空格,但如果行完全由空格组成,则不需要匹配 然后应替换这些空白 下面的表达式使用负前瞻来匹配这些空白行,但似乎不起作用 /(?!^( | )+$)( | )+$/gm 这是一个示例输入 #The following line's trailing spaces should match Foo   #But not a line full of whitespace   这里是一个片

我希望匹配行末尾的尾随空格,但如果行完全由空格组成,则不需要匹配

然后应替换这些空白

下面的表达式使用负前瞻来匹配这些空白行,但似乎不起作用

/(?!^( | )+$)( | )+$/gm
这是一个示例输入

#The following line's trailing spaces should match
Foo     

#But not a line full of whitespace
     
这里是一个片段

var-oRegExp=/(?!^(|)+$)(|)+$/;
//测试用例
var测试=功能(输入、输出){
var oMatch=sInput.match(oRegExp);
var bSuccess=(oMatch==null&&sOutput==null)| | oMatch[0]==sOutput;
console.log(“'+sInput+'”,bsucces?'success':'failed');
};
测试('Foo','');
测试(“”,空);
测试(“”,空)使用regex作为匹配任何非空格字符的字符,后跟结尾的空格。或者更具体的正则表达式,不包括换行符、制表符空间等

还有几点建议:

  • 实际上,您是以正则表达式的形式给出参数,因此这里完全不需要
    RegExp
  • 全局标志在代码中没有任何作用,因为它只出现一次
  • 当字符串匹配时,使用方法获取布尔值
  • var-oRegExp=/\S\S+$/;
    //或者更具体地说
    //oRegExp=/[^][]+$/;
    var sValidInput='Foo';
    var sInvalidInput=“”;
    console.log('''+sValidInput+''应该匹配:',oRegExp.test(sValidInput));
    
    console.log(“'+sInvalidInput+'”不应匹配:',oRegExp.test(sInvalidInput))谢谢你的回答!实际上,我的用例有点复杂,我想s不行,我将编辑问题参见我编辑的问题,至于我为什么选择消极前瞻选项。知道为什么它不能按我想象的方式工作吗?谢谢你的更新。如问题中所述(现在更明确地说),我想匹配这些空白,并更新了测试用例。好的,我想匹配空白,而不是包含空白的行。最后,这个空白将被另一个字符序列替换。