【问题标题】:wrong length after running replace javascript [duplicate]运行替换javascript后长度错误[重复]
【发布时间】:2018-04-22 23:53:27
【问题描述】:

我正在尝试验证您通过输入输入的文本。它包括删除链中的所有空格,以便使用该函数进行替换。我希望通过删除所有空格,字符串保持为空,即长度为零,但如果空格被删除但它保持相同的长度,则不会发生这种情况。我做错了什么?

document.getElementById("Validator").onclick = function() {
 var expression = document.getElementById("expressions").value;
 var aux=expression.replace(" ","");
if(aux.length==0){
 alert("the expression contains only blank spaces");
}
};

【问题讨论】:

  • 您的代码只删除了 first 空格。
  • 我是个白痴,只要他替换他找到的第一个空格。抱歉我的废话问题我正在将一个java应用程序迁移到javascript,我不记得在java中我使用了replaceAll()。谢谢

标签: javascript


【解决方案1】:

您将文字字符串传递给.replace() 函数以供其查找 (" ")。这实际上不会替换 all 空格,它只会替换搜索字符串中的第一个空格。要确保搜索到整个字符串,请使用正则表达式。

来自MDN

要执行全局搜索和替换,请在 正则表达式。

document.getElementById("Validator").onclick = function() {
  var expression = document.getElementById("expressions").value;
  
  // Find one or more spaces throughout the string:
  var aux = expression.replace(/\s+/g,"");
  
  if(aux.length === 0){
   alert("the expression either contains only blank spaces or nothing was typed at all.");
  }
};
<input id="expressions">
<button id="Validator">Validate</button>

【讨论】:

  • 我是个白痴,只要他替换他找到的第一个空格。抱歉我的废话问题我正在将一个java应用程序迁移到javascript,我不记得在java中我使用了replaceAll()。谢谢。
  • @trokbrk 没问题。不要忘记投票并标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多