【问题标题】:Is it possible to regex textarea data in realtime with Pure JS?是否可以使用 Pure JS 实时正则表达式文本区域数据?
【发布时间】:2016-08-16 13:50:43
【问题描述】:

所以这可能会让人有点困惑,但请尽量坚持我。我需要实时正则表达式单个文本区域。我不需要与服务器进行任何通信,我只需要在客户端即时完成所有这些操作。

上下文

目标是允许用户像这样输入数据;

苹果、芒果、橙子、香蕉、葡萄

但是当他们打字时,我希望客户端格式化正在输入的文本,

苹果 |芒果 |橙色 |香蕉 |葡萄

我不太精通 Javascript,但只要有足够的时间,我就能找到自己的方法。我自己尝试了一些东西,你可以在我的JSFiddle看到这里

我不确定其他人是否清楚我的思维过程,但我已经设法获取数据并对其进行正则表达式,但我不确定如何在用户文本区域中实时更新它。

// calculate characters left & position ...
function _set() {
  // Init
  var str = document.getElementById("one").value;
  var regex = new RegExp(',', 'g');

  // replace via regex
  str = str.replace(regex, ' | ');
  document.getElementById("print").innerHTML = str;
}

print.addEventListener('input', _set);
_set.call(text);

对此的任何帮助将不胜感激!

【问题讨论】:

    标签: javascript


    【解决方案1】:

    它不像您的项目那样以专业的方式(使用 RegEx、原型等),但它确实有效。

    var $textarea = document.getElementById('textarea');
    
    $textarea.addEventListener('input',function(){
      $textarea.value = $textarea.value.replace(', ',' | ');
    });
    #textarea{
      width:660px;
    }
    <textarea id="textarea"></textarea>

    【讨论】:

    • 这是我正在寻找的一个很棒的例子,也确实被剥离了。谢谢你。 P.s 我宁愿把它剥掉,这样我后面的其他人就可以轻松地跟上。
    【解决方案2】:

    你试过这样使用replace吗?

    str.replace(/ \, /g, ' | ');
    

    (将前后有空格的逗号替换为竖线,前后)

    【讨论】:

    • 更常见的是用户会使用这样的格式,例如例 1,例 2。在您的示例中,例如Example , Example , 正则表达式会中断。但是,话虽如此,我会为您示例中的格式等拼写错误添加安全防护。
    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2018-01-16
    相关资源
    最近更新 更多