Javascript 如何让正则表达式判断是否有任何错误';与正则表达式不匹配

Javascript 如何让正则表达式判断是否有任何错误';与正则表达式不匹配,javascript,regex,Javascript,Regex,背景: 我建立了一个JavaScript程序,根据用户输入创建HTML文件,但它不做CSS。我允许用户随意命名CSS ID和类,如果他们使用特定字符,包括但不限于,“,=,这可能会造成很大问题 实际问题: 我有一个确定其输入是否有效的正则表达式:/-?[\u a-zA-Z]+[\u a-zA-Z0-9-]+/这允许它以连字符开头,否则它必须以字母或下划线开头。它必须有2个字符长,不能以数字开头,超过第一个字符的所有内容都可以是数字、不区分大小写的字母或-。这很好,除非我使用的是。测试(输入),它

背景

我建立了一个JavaScript程序,根据用户输入创建HTML文件,但它不做CSS。我允许用户随意命名CSS ID和类,如果他们使用特定字符,包括但不限于,“,=,这可能会造成很大问题

实际问题

我有一个确定其输入是否有效的正则表达式:
/-?[\u a-zA-Z]+[\u a-zA-Z0-9-]+/
这允许它以连字符开头,否则它必须以字母或下划线开头。它必须有2个字符长,不能以数字开头,超过第一个字符的所有内容都可以是数字、不区分大小写的字母或-。这很好,除非我使用的是
。测试(输入)
,它返回一个
true
false
,具体取决于是否有匹配项。我试图通过
if
语句确定输入是否完全匹配,但如果有匹配项,它将返回
true
,并保留其余输入

在重新评估我一直试图做的事情之后,我正在尝试匹配不符合上述表达式的内容

例如:
/-?[\u a-zA-Z]+[\u a-zA-Z0-9-]*/.测试(“”)

这与“”中的div相匹配

“”返回
true
,即使某些输入不符合正则表达式

const REGEX=/-?[_a-zA-Z]+[_a-zA-Z0-9-]+/;
var类=“”;
if(正则表达式测试(类))
{
控制台日志(“”);
//文件。写(“”);
}
Class='bar';
if(正则表达式测试(类))
{
控制台日志(“”);
//文件。写(“”);
}
添加
^
(字符串开头)和
$
(字符串结尾)以测试精确匹配

const REGEX=/^-?[[u a-zA-Z]+[[u a-zA-Z0-9-]+$/;
var类=“”;
if(正则表达式测试(类))
{
控制台日志(“”);
//文件。写(“”);
}
Class='bar';
if(正则表达式测试(类))
{
控制台日志(“”);
//文件。写(“”);

}
欢迎使用SO!这是否回答了您的问题?或者在您呼叫
//的前面放一个
。测试
?不确定“不完美”是什么意思“不过,如果正则表达式中发生了任何匹配,它将返回true,如果还有其他内容,那么我需要它返回false。虽然我相信我在寻找前瞻/落后和否定,但用正则表达式解析HTML/CSS可能是个坏主意。为什么允许用户修改标记?你只想添加锚吗?你能给出一些具体的输入和输出示例,并对每个示例进行解释吗?谢谢——对不起,我有点困惑。背景真的没有必要,我正在考虑删除它。它只是告诉你正则表达式应该搜索什么。用户是程序员,而不是最终消费者,这允许在CSS名称更改时不使用find&replace all就可以使用变量ID和类。我想您应该使用
^
$
字符来匹配字符串
控制台.log(/^-?[\u a-zA-Z]+[\u a-zA-Z0-9-]+$/.test(“”)的开头和结尾