【问题标题】:Use Jquery for text autoformatting: convert --> to →使用 Jquery 进行文本自动格式化:转换 --> 到 →
【发布时间】:2016-04-27 03:59:58
【问题描述】:

如何让 jquery/javascript 检测何时在文本字段中输入 --> 并将其替换为

以下是最好的方法吗:

$("input").on("keyup paste", function() {

  var content = $(this).html(),
  arrow =  "→";
  content = content.replace(regex, arrow);
  $(this).html(content);

});

【问题讨论】:

  • 如果您试图找到解决方案,请添加相关问题。
  • 我还没有尝试找到解决方案。我想找出实现这一目标的最合适的方法。

标签: jquery regex textfield keyup autoformatting


【解决方案1】:

您可以使用String#replace 和正则表达式来替换所有出现的字符串。

注意:input 元素有value,使用val() 获取它的值。

$("input").on("keyup paste", function () {
    $(this).val(function (i, val) {
        return val.replace(/-->/g, '→');
    });
});

$("input").on("keyup paste", function () {
    $(this).val(function (i, val) {
        return val.replace(/-->/g, '→');
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />

我建议使用change 事件而不是keyup

【讨论】:

    【解决方案2】:

    试试这个:

    $("input").on("keyup paste", function() {
      var content = $(this).val();
      arrow =  "→";
      content = content.replace(/-->/g, arrow);
      $(this).val(content);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type='text' />

    【讨论】:

    • 在正则表达式上错过了g 标志。请注意,用户可以多次粘贴具有--&gt; 的内容。如果没有g,只会替换第一次出现。
    • @Tushar 同意。已编辑。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    相关资源
    最近更新 更多