如何在没有Reg ex的情况下验证字符串 - Javascript

时间:2015-08-17 05:15:48

标签: javascript

我正在努力完成作业;这就是我所坚持的:

用户输入只能包含以下允许的字符

  • 字母字符小写(a-z)大写(A-Z)
  • 撇号(')
  • 连字符( - )
  • 必须至少有1个字母字符(a-z)(A-Z)

注意:您无法使用Reg Ex。

如果不使用Reg Ex,我无法真正看到另一种方法。这是我到目前为止所做的......

function validate_name() {
   var name = document.getElementById("name").value;
   name = name.trim();
   for (i = 0;i < name.lenght; i++) {
      if (name.charAt(i) == a...I don't know what I'm doing

2 个答案:

答案 0 :(得分:1)

你可以这样做:

var str = prompt('Enter input:');
var alphaExist = false;
var valid = true;
for (var i = 0; i < str.length; i++) {
    if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'-".indexOf(str.charAt(i)) == -1) {
        valid = false;
    }
    if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(str.charAt(i)) > -1) {
        alphaExist = true;
    }
}
alert(valid && alphaExist ? 'Valid' : 'Invalid');

http://jsfiddle.net/4wwod65h/

答案 1 :(得分:0)

查看位于http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

的键码列表

不要使用

document.getElementById("name").value;

而是解析由击键触发的事件。 您有一个很好的示例,说明如何在MDN页面上使用它:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

因此,结合键码列表和键盘事件来过滤您感兴趣的键码。

提示:您可以使用范围,因为键码是一堆数字。