首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文本打印输出时替换字符串- Javascript

文本打印输出时替换字符串- Javascript
EN

Stack Overflow用户
提问于 2017-05-13 14:56:10
回答 2查看 28关注 0票数 0

当有人在表单输入框中键入内容时,我使用以下代码来打印文本:

代码语言:javascript
运行
复制
<script>
var inputBox = document.getElementById('company');
inputBox.onkeyup = function(){
    document.getElementById('printchatbox').innerHTML = inputBox.value;
}
</script>

这很好用,但是我也想用下划线替换用户键入的任何空格。为了做到这一点,我尝试了下面的方法来做一个简单的搅拌替换,但这似乎破坏了整个事情。

代码语言:javascript
运行
复制
<script>
var inputBox = document.getElementById('company');
inputBox.onkeyup = function(){
    var res = inputBox.replace(" ", "_");
    document.getElementById('printchatbox').innerHTML = res.value;
}
</script>

你知道我哪里做错了吗?

EN

回答 2

Stack Overflow用户

发布于 2017-05-13 14:58:50

您需要的是输入框中的值,而不是您正在使用的变量。下面的代码应该可以工作:

代码语言:javascript
运行
复制
<script>
var inputBox = document.getElementById('company');
inputBox.onkeyup = function(){
  var res = inputBox.value.replace(" ","_");
  document.getElementById('printchatbox').innerHTML = res;
}
</script>

EDIT:正如trincot指出的那样,只会替换第一次出现的内容,使用正则表达式会有所帮助,以下是另一种选择:

代码语言:javascript
运行
复制
var res = inputBox.value.replace(/\s/g, "_");
票数 3
EN

Stack Overflow用户

发布于 2017-05-13 15:00:44

一些问题:

  • inputBox在value.
  • replace属性中有输入值,因此您应该在该属性上应用property
  • replace返回字符串的replace,这样它就不会有value,除非您提供具有g修饰符的正则表达式,否则

将只替换一个匹配项。

所以你可以这样做:

代码语言:javascript
运行
复制
var res = inputBox.value.replace(/ /g, "_");
document.getElementById('printchatbox').innerHTML = res;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43950182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档