【问题标题】:Regex for no letters and 1 number at least [closed]至少没有字母和1个数字的正则表达式[关闭]
【发布时间】:2017-08-02 17:08:15
【问题描述】:

我想知道我找不到适合这种情况的任何正则表达式。我不能做一个,所以任何帮助将不胜感激。我需要一个符合以下条件的正则表达式。

  1. 严禁使用字母
  2. 至少必须是 1 个数字
  3. 允许所有特殊字符

【问题讨论】:

  • 向我们展示您的尝试。这里的想法是不要放弃并期望别人为你做这件事......这是为了展示你所拥有的,其他人帮助解决它
  • 我试过这个 ^([\d*\.\+\-\&\$\#\@()])*[^a-zA-Z]$ 但有时它没有不行。

标签: javascript regex


【解决方案1】:

试试这个,它满足你的所有要求:

/^[^a-z]*[0-9]+[^a-z]*$/xi

如果您想尝试使用 Regex,请尝试 Regex101

【讨论】:

  • 嘿彼得,感谢您的快速响应,但您的 exp 没有通过此输入 +56& 655-65+78。
  • 谢谢,我更新了,现在可以了
  • 太棒了 :) 它完全符合我的需要。非常感谢。顺便说一句,xi 是做什么的?
  • 标志 x(小写)代表扩展,它使正则表达式忽略空格。 i 代表不区分大小写,因此例如 [a-z] 将匹配大小写。 ;)
【解决方案2】:

var reg = /^-?\d+\.?\d*$/; 可能对你有用。

function submited(){
  var input = document.getElementById( 'input' ),
      output = document.getElementById( 'output' ),
      value = input.value,
      reg = /^-?\d+\.?\d*$/;
      
  output.innerHTML = reg.test( value );
}

var button = document.querySelector( 'button' );
button.addEventListener( 'click', submited );
html,
body {
  height: 100%;
  margin: 0;
}
html {
  font-family: sans-serif;
}
body {
  display: flex;
}
section {
  margin: auto;
  padding: 2rem;
  background-color: #eee;
  border-radius: 2rem;
}
p {
  color: #777;
}
input,
button {
  border-radius: 0.5rem;
  border: 0;
  padding: 0.5rem;
}
button {
  margin-left: 0.5rem;
  cursor: pointer;
}
button:hover {
  background-color: #ccc;
}
#output {
  color: #000;
}
<section>
  <p>True only for numbers. False for letters. Test below.</p>
  <input id="input" type="text">
  <button>submit</button>
  <p>result: <span id="output"></span></p>
</section>

【讨论】:

  • 请告诉我为什么投反对票?
  • 你的正则表达式只检查数字。
  • @Peter 也许我误解了这个问题,或者对正则表达式没有经验。 OP 想要不允许字母但只允许数字的正则表达式。我相信我的做到了。
  • 再次阅读问题
  • 没有难过的感觉,但是当您说您可能经验不足时,最好不要发布半生不熟的答案。 :)
猜你喜欢
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2018-01-31
  • 2012-05-30
相关资源
最近更新 更多