如何允许用户只输入字符串?

时间:2015-09-12 18:11:57

标签: javascript html string validation alphabetical

function EnterCandidates() {
  var candidateNameInputs = document.querySelectorAll('input[id^=C]'),
    names = document.querySelectorAll('label[for^=V][id^=L_V]');

  Array.prototype.forEach.call(names, function(label, index) {
    if (candidateNameInputs[index].value !== candidateNameInputs[index].defaultValue) {
      label.textContent = candidateNameInputs[index].value;
    }
  });
}

我有这个代码,它获取用户输入并更改标签,但我想添加一些代码,只允许用户输入字母表的字母。我将如何使用此代码进行此操作?

5 个答案:

答案 0 :(得分:2)

如果您使用的是现代浏览器,请使用html5验证 -

<input type="text" name="name" class="field" pattern="[a-zA-Z ]+" />

它接受a-zA-Z加空格

答案 1 :(得分:0)

听取keyDown事件并与此正则表达式匹配:

/[a-zA-Z]+/

如果您只定位现代浏览器,可以试试这个:

<input type="text" pattern="[a-zA-Z]" title="Only letters" />

答案 2 :(得分:0)

var val = document.getElementById('id').value;

if (!val.match(/^[a-zA-Z]+$/)) 
{
alert('Only alphabets are allowed');
return false;
}

完整脚本

function EnterCandidates() {
console.log('woo');
var candidateNameInputs = document.querySelectorAll('input[id^=C]'),
    names = document.querySelectorAll('label[for^=V][id^=L_V]');

Array.prototype.forEach.call(names, function (label, index) {
    if (!candidateNameInputs[index].value.match(/^[a-zA-Z]+$/)) 
     {
         alert('Only alphabets are allowed');
    }
    else
    {
         if (candidateNameInputs[index].value !==  candidateNameInputs[index].defaultValue) {
        label.textContent = candidateNameInputs[index].value;
    }
    }

});
}

答案 3 :(得分:0)

您无法避免用户输入非字母字符。但是你可以: - 控制输入字段(onkeydown)并检查是否有一些你不想要的字符Stackoverflow - force input to only alpha-letters - 之前做同样的事情 label.textContent = candidateNameInputs [index] .value; 排除并过滤/替换您不想要的字符

答案 4 :(得分:0)

以下是使用Javascript进行此操作的一种方法。

http://jsfiddle.net/q60gm0ra/

var input = document.getElementById('alpha');

input.addEventListener('keypress',function(e) { 
    var str = String.fromCharCode(e.charCode);
    if (!(/[A-Z]|\s/i).test(str)) {
       e.preventDefault();
    }
});