【问题标题】:Modify regex to disallow spaces修改正则表达式以禁止空格
【发布时间】:2018-07-02 14:49:53
【问题描述】:

我正在使用以下正则表达式:

var currentVal = $(this).val();

//making sure it's only numbers, decimals, and commas
var isValid = /^[0-9,.]*$/.test(currentVal);

我正在尝试修改它,使其也不允许使用空格。我尝试在正则表达式中添加 /s 但它仍然允许它。比较新的正则表达式,很快就会变得混乱

【问题讨论】:

  • 所以你是说如果值中有空格,isValid 会返回 true?
  • 您的正则表达式不应允许空格
  • 正则表达式本身已经不允许使用空格:regex101.com/r/8q0hT5/1
  • 在这里工作得很好jsfiddle.net/n57jwbuh
  • @executable 不,它应该启用点和逗号。

标签: javascript regex


【解决方案1】:

您的正则表达式中的括号[] 形成一个字符类。 ^ 表示字符串的开头,$ 表示字符串的结尾,* 多次贪婪地应用字符类。正如它所写的那样,它应该只允许在 0 到 9 类中指定的字符、逗号和句点字符。如果您尝试添加\s,您还将允许您的字符类中包含任何空白字符,从而导致您的问题。

console.log(/^[0-9,.]*$/.test("123 903"));

【讨论】:

  • 这是正确的,但是现在OP无法删除错误发布的问题,因为有答案!它现在应该关闭。
  • @Archer 道歉。我的目标是教育。由于 OP 显然不理解正则表达式,我认为解释它可能比告诉他“它已经有效”并送他上路更好。如果有帮助,我可以删除我的答案。
  • 不需要道歉——我也只是想教育你。这个问题不被删除并不是世界末日。这更整洁:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 2015-11-13
  • 1970-01-01
  • 2016-05-24
  • 2014-04-14
相关资源
最近更新 更多