【问题标题】:Regex to globally accept back space in javascript正则表达式在 javascript 中全局接受退格
【发布时间】:2017-03-27 19:11:49
【问题描述】:

我有这个正则表达式,用于限制货币字段,它工作得很好,因为我可以简单地替换 .使用 , 我可以轻松地即时对其进行本地化。我唯一的问题是我似乎无法使用这个正则表达式删除最后一个剩余的字符,我希望能够做到这一点。有没有办法修改这个正则表达式来允许它?

^[+-]?([\b0-9])+[.]?([0-9])+$

编辑:上面的正则表达式通过道具作为字符串传递,以响应输入字段。然后输入字段在更新其值之前检查此方法

  matchRegex = (reg, val) => {
const regex = new RegExp(reg, "gm");
if (regex.test(val)) {
  return true;
}
return false;

};

【问题讨论】:

  • 我认为你需要展示你在用那个 reg exp 做什么
  • 如果你想删除最后一个字符,为什么要使用正则表达式?为什么不直接使用str.slice(0,str.length-1)
  • 我正在尝试拦截传入的击键并允许或禁止它。这就是我使用正则表达式的原因。但是,一旦我退格到最后一个字符,如果需要,我也无法删除它。这就是问题所在。
  • 尝试使用击键处理程序中的事件来执行 event.preventDefault()
  • @CognitiveDesire 你能否澄清和/或提供一个例子。

标签: javascript regex reactjs currency


【解决方案1】:

我实际上能够弄清楚这一点。由于我正在截取击键,因此我实际上不需要担心整个字符串,并且一次可以专注于一个输入字符,因此以下内容能够满足我的需求:

^([\b^0-9.-])*$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 2013-11-23
    • 2011-11-14
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多