如何使用javascript替换空格?

时间:2011-04-26 10:57:31

标签: javascript

我正在尝试从textarea中删除空格。以下代码不附加我从两个下拉列表中选择的文本。谁能告诉我哪里出错了?我正在尝试删除字符串中的多个空格,是否可以使用相同的?不太了解正则表达式。请帮忙。

    function addToExpressionPreview() {
  var reqColumnName = $('#ddlColumnNames')[0].value;
  var reqOperator = $('#ddOperator')[0].value;

  var expressionTextArea = document.getElementById("expressionPreview");

  var txt = document.createTextNode(reqColumnName + reqOperator.toString());
  if (expressionTextArea.value.match(/^\s+$/) != null)
  {
    expressionTextArea.value = (expressionTextArea.value.replace(/^\W+/, '')).replace(/\W+$/, '');

  }
  expressionTextArea.appendChild(txt);
}

3 个答案:

答案 0 :(得分:1)

> function addToExpressionPreview() {   
>   var reqColumnName = $('#ddlColumnNames')[0].value;
>   var reqOperator = $('#ddOperator')[0].value;

您也可以使用document.getElementById()来解决上述问题。

>   var expressionTextArea = document.getElementById("expressionPreview");
>   var txt = document.createTextNode(reqColumnName + reqOperator.toString());

reqOperator已经是一个字符串,无论如何,使用+运算符会将它强制转换为String,除非所涉及的所有表达式或标识符都是Numbers。

>   if (expressionTextArea.value.match(/^\s+$/) != null) {

这里不需要match。我好像在试图查看值是否都是空白,所以你可以使用:

if (/^\s*$/.test(expressionTextArea.value)) {
  // value is empty or all whitespace

由于您多次重复使用expressionTextArea.value,因此将它存储为变量会更方便,最好使用短名称。

>     expressionTextArea.value = (expressionTextArea.value.replace(/^\W+/,
> '')).replace(/\W+$/, '');

这将替换字符串末尾的一个或多个非单词字符。如果你想用一个替换字符串中任何地方的多个空白字符,那么(注意在此处发布包装):

expressionTextArea.value = expressionTextArea.value.
                             replace(/^\s+/,'').
                             replace(/\s+$/, '').
                             replace(/\s+/g,' ');

请注意,\s与所有浏览器中相同范围的“空白”字符不匹配。但是,对于表单元素值的简单使用,它可能就足够了。

答案 1 :(得分:0)

空格由\s匹配,所以

expressionTextArea.value.replace(/\s/g, "");

应该为你做的伎俩。

在您的示例中,^\W+仅匹配非word character的前导字符,^\s+$仅匹配整个字符串为空格的情况。要进行全局替换(不仅仅是第一场比赛),您需要使用g修饰符。

答案 2 :(得分:0)

参考this链接,您可以了解一些信息。试试.replace(/ /g,"UrReplacement");

编辑:或.split(' ').join('UrReplacement')如果你厌恶REs