Skip to main content
 首页 » 编程设计

javascript之正则表达式验证规则

2025年05月04日172jpfss

我正在编写一个数据库备份函数作为我学校项目的一部分。

我需要编写一个正则表达式规则,以便数据库备份名称只能包含合法字符。

“合法”是指不包含任何符号或空格的字符串。只有字母和数字中的字母。

有效字符串的示例是 '31Jan2012''63927jkdfjsdbjk623''hello123backup'

到目前为止,这是我的 JS 代码:

    // Check if the input box contains the charactes a-z, A-Z ,or 0-9 with a regular expression. 
 
    function checkIfContainsNumbersOrCharacters(elem, errorMessage){ 
        var regexRule = new RegExp("^[\w]+$"); 
        if(regexRule.test( $(elem).val() ) ){  
            return true; 
        }else{ 
            alert(errorMessage); 
            return false; 
        } 
    } 
 
 
//call the function 
 
checkIfContainsNumbersOrCharacters("#backup-name", "Input can only contain the characters a-z or 0-9."); 

虽然我以前从未真正使用过正则表达式,但是经过快速谷歌搜索后我发现了 this工具,我从中编写了以下正则表达式规则:

^[\w]+$ 

^ = 字符串开始

[/w] = a-z/A-Z/0-9

'+' = 字符串后的字符。

运行我的函数时,我输入的任何字符串似乎都返回 false :( 是我的代码有误吗?还是我没有正确使用正则表达式规则?

请您参考如下方法:

这里的问题是,当在字符串中写入 \w 时,您对 w 进行了转义,生成的正则表达式如下所示:^[ w]+$,包含 w 作为文字字符。使用传递给 RegExp 构造函数的字符串参数创建正则表达式时,您需要转义反斜杠,如下所示:new RegExp("^[\\w]+$"),这将创建您想要的正则表达式。

有一种方法可以避免这种情况,使用 JavaScript 提供的速记符号:var regex =/^[\w]+$/; 不需要任何额外的转义。