从字符串末尾删除空白无效

removing whitespace from end of string not working

本文关键字:空白 无效 删除 字符串      更新时间:2023-09-26

我不明白为什么它应该输出'now'却输出'now]。

mainQueryString = 'now ';
mainQueryString = mainQueryString.replace('/'s+$/g', ''); /* query without the ending space */
console.log('mainQueryString:', ''''+mainQueryString+'''');

仍然输出"now"(末尾为空白)。

为什么使用regex?

使用修剪方法。

mainQueryString = 'now ';
mainQueryString = mainQueryString.trim();

只需在正则表达式模式周围去掉那些单引号,不匹配文本字符串,而是根据javascript语法匹配模式:

mainQueryString = mainQueryString.replace(/'s+$/g, '');
console.log('mainQueryString:', ''''+mainQueryString+'''');// 'now'

值得一提的是,trim()方法在旧的浏览器中不可用,比如IE7——这里有更多关于它的信息:在JavaScript中修剪字符串?

有人已经提到trim,这是一个更好的解决方案,但您的正则表达式不起作用的原因是您用单引号将其封装,将其变成了一个常规字符串。

示例:

var foo = 'foo'.replace('/foo/', 'bar'); // Will contain 'foo'
var bar = 'foo'.replace(/foo/, 'bar'); // Will contain 'bar'
   //To support only internet explorer 9 and above :
   var str= "now    " ;
   console.log(str.trim()) ;
   //To support internet explorer 8 and below as well :
   if(typeof String.prototype.trim !== 'function') {
     String.prototype.trim = function() {
       return this.replace(/^'s+|'s+$/g, ''); 
     }
   }
   var str= "now    " ;
   console.log(str.trim()) ;

//注意:如果您在项目中使用Jquery.js或dojo.js等任何JavaScript库中的trim()方法,也可以使用它们。

您不需要regex,因为trim方法在旧浏览器中不受支持,所以您可以使用简单的javascript:来实现这一点

var mainQueryString = 'now ';
mainQueryString = mainQueryString.substring(0,mainQueryString.lastIndexOf(" "));