用最后一个空格除下划线替换值空间

时间:2014-07-04 10:34:19

标签: javascript

<script>
  function replaceSpaces() 
    {
      var str = document.getElementById("demo").value; 
      var res = str.replace(" ", "_");
      document.getElementById("demo").value = res;
    }
</script>

<input type="text" value="" name="demo" id="demo" onchange="replaceSpaces()">

Js就像一个魅力。它替换从空格到下划线的更改时的输入文本值。 但是如果用户错误地在字符串末尾添加了空格,则希望限制函数添加空格。 条件:最后一个或任意数量的空格

前:

str = 'abc xyz '

预期输出='abc_xyz' 当前输出='abc_xyz _'

更新:

如果单词超过2,则下面提到的答案都不起作用。

例如:'ab cd ef gh ij'

5 个答案:

答案 0 :(得分:0)

首先,修剪字符串,然后替换空格。

str.replace(/\s+$/g, '').replace(" ", "_");;

答案 1 :(得分:0)

字符串的方法trim()替换字符串的结尾和开头的所有空白字符,所以只需写:

      var res = str.trim().replace(" ", "_");

答案 2 :(得分:0)

首先修剪,然后替换:

var res = string.trim().replace(' ','_');

答案 3 :(得分:0)

实际上,有些浏览器不支持trim()功能(例如IE 8及以下版本)。

我建议您使用正则表达式进行修剪:

var res = str.replace(/^\s+|\s+$/gm,'').replace(" ", "_");

答案 4 :(得分:0)

你是对的,.replace只替换字符串中的第一个出现,作为替代,你可以使用它:

var res = str.trim().split(/\s+/).join('_')