JavaScript'外来字符'regex无法捕获模式

JavaScript 'foreign characters' regex failing to catch patterns

本文关键字:模式 字符 JavaScript regex      更新时间:2024-01-27

尝试设置一个简单的.jsp来测试JavaScript正则表达式,避免每次进行更改时都必须清理/构建/重新发布测试服务器。现有的代码取自我正在努力增加西班牙语字符识别的一个项目,但这段代码似乎根本没有发现任何不匹配的地方。

<html>
<head>
    <script language="JavaScript">
        function isValidTarget(target) {
            if (regexTarget.target.search(/^[a-zA-Z'#'@'!'&'.'*'-:;<>"','?0-9 ]+$/) == -1) {
                alert("Your input contains one or more invalid characters.");
            }
        }
    </script>
</head>
<body>
    <form name="regexTarget" method="post" onSubmit="return isValidTarget(this)">
        Target: <input type="text" name="target"/>
        <input type="submit" value="Submit" />
    </form>
</body>
</html>

您正在尝试搜索DOM节点,而不是其值。试试这个:

regexTarget.target.value.search(...)

您将参数命名为target,但从未使用过它。要么删除该参数,要么使用它(例如if( target.target.search...

if (target.target.value.search(/^[a-zA-Z'#'@'!'&'.'*'-:;<>"','?0-9 ]+$/) == -1)