键入时替换字符串

时间:2017-09-12 08:43:28

标签: javascript jquery

我想从表单上的用户输入创建一个Web友好的图像名称。我想用用户键入的短划线替换用户输入的字符串中的任何空格。

我的代码仅替换第一个空间。

如何用破折号替换所有空格?

df = df['date'].dt.date.value_counts()

4 个答案:

答案 0 :(得分:3)

您必须全局替换所有出现的空格。所以,使用这个,

newText = newText.replace(/ /g, "-");

最终代码

$('#form_model').keyup(function(event) {
var newText = event.target.value; 
newText = newText.replace(/ /g, "-");

$('#form_image').val(newText+".png");
});

答案 1 :(得分:1)

通过使用带有g标志的正则表达式可以轻松完成此操作。 g代表全局,因此它会影响整个字符串,而 NOT 仅代表第一个值。

这是工作小提琴:



$('#form_model').keyup(function(event) {
  var newText = event.target.value;
  newText = newText.replace(/\s/g, "-");
  $('#form_image').val(newText+".png");
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="form_model" type="text">
<input id="form_image" type="text" readonly>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

JS函数 replace()仅替换匹配的第一个字符。我通常使用

.split('X').join('Y');

所以,在你的代码中它将是:

newText = newText.split(' ').join('-');

通过这种方式,您可以“替换”所有加工字符。

答案 3 :(得分:0)

$(document).ready(function () {
  $('#form_model').keyup(function(event) {
  var newText = event.target.value; 
  newText = newText.replace(" ", "-");

  $('#form_image').val(newText+".png");
  });
});

示例在这里:https://jsfiddle.net/55qxy624/