javascript - JS 电话号码验证-匹配字符串

标签 javascript string validation indexof

我需要做的就是检查输入是否包含给定数组的任何值。由于某种原因它总是返回 true;

document.querySelector('#phonenumber').addEventListener('change', function (e) {
    let alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    let target = e.target.value;
    let splittedTarget = target.split('');

    console.log(splittedTarget, alphabet)

    if (alphabet.indexOf(splittedTarget) > -1) {
      alert('there is not');
    } else {
      alert('there is');
    }
});

fiddle 链接:https://jsfiddle.net/et5avosu/

最佳答案

您可以使用.some()在您输入的字符上:

const alphaInInput = !splittedTarget.some(elem => alphabet.indexOf(elem) > -1);

alphaInInput将是 boolean 。如果您的输入包含 alphabet 中的字符字符串那么它将是 true ,如果没有则为 false .

请参阅下面的工作示例:

document.querySelector('#phonenumber').addEventListener('change', function (e) {
    let alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; // Remove .split() (no need for array)
    let target = e.target.value;
    let splittedTarget = target.split('');
		
    const alphaInInput = splittedTarget.some(elem => alphabet.indexOf(elem) > -1);
   
    // console.log(splittedTarget, alphabet)
    if (!alphaInInput) {
      alert('there is not');
    } else {
      alert('there is');
    }
  });
<input id="phonenumber" />

或者您可以使用 regex 使用以下模式 /[A-Za-z]/g ,然后使用.test()查看您的输入是否与模式匹配。

注意:/[A-Za-z]/g测试从 A 到 Z 和 a 到 z 的字符,即您的字母字符串包含的内容:

document.querySelector('#phonenumber').addEventListener('change', function (e) {
    let inputStr = e.target.value;
    let regex = /[A-Za-z]/g;
    let alphaInInput = regex.test(inputStr);
   
    if (!alphaInInput) {
      alert('there is not');
    } else {
      alert('there is');
    }
  });
<input id="phonenumber" />

关于javascript - JS 电话号码验证-匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53498241/

相关文章:

用于强密码验证的 PHP 正则表达式

Javascript:如何验证 4 个相对字段大于另一个字段

c - 使用 scanf 的验证检查在循环内不起作用

javascript:接收单选按钮组中的单选按钮值并根据每种情况命令不同的指令

javascript - 即使没有错误也不会出现Google图表

algorithm - 这个算法/​​例程的名称是什么?

c++ - 哪个是在 C/C++ 中将 BSTR 参数转换为 ANSI 的更好代码?

javascript - 一旦我设置了nodeIntegration :false -> “Uncaught ReferenceError: require is not defined at Object.url (external ” url“:1) ” #electron-#react-#typescript

javascript - 如何可靠地检测 JavaScript 中的外来对象?

c - 如何在 html 中搜索字符串模式,用 C 编码?