我想从表单上的用户输入创建一个Web友好的图像名称。我想用用户键入的短划线替换用户输入的字符串中的任何空格。
我的代码仅替换第一个空间。
如何用破折号替换所有空格?
df = df['date'].dt.date.value_counts()
答案 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;
答案 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");
});
});