如何使用jquery覆盖/替换目标输入上的字符串

时间:2018-01-18 12:56:50

标签: javascript jquery

我有2个输入框。 1 =原始,2 =结果。我想用“ - ”(短划线)替换#box2中的空格。

所以我有:

$("#box1").on('input', function() {
  var stts = $(this).val();
  dashed = stts.replace(/ /g, "-");
  $("#box2").val(dashed);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="box1" placeholder="original" />
<input type="text" id="box2" placeholder="dashed string" />

但问题是当原box1内有“ - ”时。按下空格时。目的地中有双点“ - ”。

问题是:如何覆盖原来的“ - ”(短划线)。所以在目的地内只有一个“ - ”? - https://jsfiddle.net/kcsyjrmL/

在这里工作:https://jsfiddle.net/kcsyjrmL/4/(thnx to gurvinder372)

工作2:https://jsfiddle.net/kcsyjrmL/5/(感谢Jp Mohan,修复太空)

2 个答案:

答案 0 :(得分:3)

  

如何覆盖原作&#34; - &#34; (短跑)。所以它只有一个&#34; - &#34;   在目的地内?

\s+

替换空格
dashed = stts.replace(/(\s|\-)+/g, "-");

<强>演示

&#13;
&#13;
$("#box1").on('input', function() {
  var stts = $(this).val();
  dashed = stts.replace(/(\s|\-)+/g, "-");
  $("#box2").val(dashed); 
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="box1" placeholder="original" />
<input type="text" id="box2" placeholder="dashed string" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

试试这个,

这将确保多个相邻的出现 - &#39; - &#39;将被制作成一个&#39; - &#39;

dashed =stts.replace(/ /g,"-").replace(/--+/g, '-');