从字符串末尾删除空白无效
removing whitespace from end of string not working
我不明白为什么它应该输出'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(" "));
相关文章:
- 如何删除多行HTML排列中的空白
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 不同浏览器中的空白字符正则表达式行为
- Javascript中的空白是什么
- Facebook共享显示一个接一个的空白页面
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 这个问号在Flow中意味着什么:“;?()=>“无效”;
- 从字符串末尾删除空白无效
- Jquery Datatables错误:无效的JSON基元:draw
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 滚动在Chrome中有效,但在Firefox或IE中无效
- 当读取文件时,浏览器打开良好,但它是空白浏览器
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- Javascript setattribute-名称和值无效
- 格式化货币无效
- JavaScript错误无效的限定符
- 按键事件无效的原因
- 我不断得到空白值和无效文件
- iccast json-status.xls,无效json答案与空白歌曲标题