<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'
答案 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('_')