确保在表单输入字段的开头不使用=

时间:2018-06-27 21:11:21

标签: javascript html regex forms vue.js

我正在寻找一种解决方案,以确保表单中的任何输入均不使用favorite_ads字符。

=

我现在在电子邮件和数字的类型字段中应避免这种情况,但是不确定是否可以被黑。所以也许也对它们使用一些验证

我认为正则表达式可能是答案,它几乎可以正常工作。只需进行调整即可(两个结果都应只显示文本“ test1”和“ test2”,并去除=) https://regex101.com/r/faYiuB/1/

是否可以像我在下面的第一次尝试那样使用正则表达式将其合并到输入字段中?

    <form>
        <input name="email" type="email" placeholder="Email" required="">
        <input name="last name" type="text" placeholder="Last Name">
        <input name="idnumber" type="number" placeholder="ID Number">
    </form>

https://css-tricks.com/form-validation-part-1-constraint-validation-html/

2 个答案:

答案 0 :(得分:1)

您可以在此处为[^=]+type="email"使用type="text"模式,因为 pattern 样式正则表达式不适用于type="number"字段(并且您不能在数字字段中输入=或将其粘贴):

<form>
  <input name="email" pattern="[^=]+" type="email" placeholder="Email" required="">
  <input name="last name" pattern="[^=]+" type="text" placeholder="Last Name">
  <input name="idnumber" type="number" placeholder="ID Number">
  <input type="Submit">
</form>

pattern="[^=]+"转换为/^(?:[^=]+)$/正则表达式(在Chrome和FireFox中带有u修饰符),并匹配包含1个以上字符的字符串,而不是=

答案 1 :(得分:0)

请不要让他们按下该按钮,这是一个不允许他们甚至在文本框中的任意位置输入=符号的示例。还有第二个示例,也不允许它也成为第一个字符。

window.notEqual = function notEqual(evt) {
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  return charCode != 61;
}

window.notEqualAtStart = function notEqualAtStart(evt, target) {
  if (target.value != '')
    return true;

  var charCode = (evt.which) ? evt.which : evt.keyCode;
  return charCode != 61;
}
<input type="text" onkeypress="return window.notEqual(event)" />

<input type="text" onkeypress="return window.notEqualAtStart(event, this)" />