使用正则表达式的Javascript函数

Javascript function using regex

本文关键字:Javascript 函数 正则表达式      更新时间:2023-09-26

我使用regg -ex创建了一个函数来验证JavaScript中的字段。我的函数是

//FIRST NAME VALIDATION
var strFilter = /^[A-Za-z]*$/;
var fname = document.getElementById('fname');
fname = fname.value.replace(/^'s+|'s+$/g,'');
if ( ( !strFilter.test(fname.value) ) || fname == '') { 
    alert("Please enter a valid first name'r'n (only characters)");
    document.getElementById('fname').style.background = '#DFE32D';
    document.getElementById('fname').focus();
    document.getElementById('fname').value = '';
    return false;
}

该函数的问题是,它将stackoverflow234232也视为真。我想只限制字符

我想你的问题在这一行-

if ((!strFilter.test(fname.value)) || fname == '') { 

应该是-

if ((!strFilter.test(fname) ) || fname == '') { 
当您到达if语句时,

fname是一个字符串变量,因此fname.value返回undefined,并且对test的调用不起作用。

试试这个

<!--   FIRST NAME VALIDATION   -->
var strFilter = /^[A-Za-z]*$/;
var fname = $('#fname');
fname.val(fname.val().replace(/^'s+|'s+$/g,''));

if ( ( !strFilter.test(fname.val()) ) || fname == '') {
    alert("Please enter a valid first name'r'n (only characters)");
    $('#fname').css('background-color','#DFE32D');
    $('#fname').focus();
    $('#fname').val('');
    return false;
}