Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript正则表达式无法匹配给定字符串_Javascript_Meteor - Fatal编程技术网

javascript正则表达式无法匹配给定字符串

javascript正则表达式无法匹配给定字符串,javascript,meteor,Javascript,Meteor,此Meteor代码无法将正则表达式与字符串匹配,并且在if条件语句中生成true。我做错了什么?如何修复它?谢谢 console.log(单据有效); 控制台日志(文档值); var patt=新的RegExp(单据有效); 控制台日志(patt); if(部分测试(文件值)){ 控制台日志(“匹配”); }否则{ 控制台日志(“不匹配”); } //流星终端 I20160313-08:06:53.143(11)/[0-9a-zA-Z]{1,6}/g I20160313-08:06:53.14

此Meteor代码无法将正则表达式与字符串匹配,并且在if条件语句中生成true。我做错了什么?如何修复它?谢谢

console.log(单据有效);
控制台日志(文档值);
var patt=新的RegExp(单据有效);
控制台日志(patt);
if(部分测试(文件值)){
控制台日志(“匹配”);
}否则{
控制台日志(“不匹配”);
}
//流星终端
I20160313-08:06:53.143(11)/[0-9a-zA-Z]{1,6}/g
I20160313-08:06:53.144(11)?好啊
I20160313-08:06:53.144(11)//[0-9a-zA-Z]{1,6}/g/

I20160313-08:06:53.145(11)?不匹配
我认为您的问题在于尝试实例化RegExp对象的方式。RegExp对象接受字符串而不是regex作为第一个参数。尝试
newregexp(“[0-9a-zA-Z]{1,6}”,“g”)

我认为您的问题在于尝试实例化RegExp对象的方式。RegExp对象接受字符串而不是regex作为第一个参数。尝试
newregexp(“[0-9a-zA-Z]{1,6}”,“g”)

如果您希望正则表达式的意思是“将字母数字字符串严格地匹配为1到6个字母(但不超过6个)”,那么它应该是:

/^[0-9a-zA-Z]{1,6}$/
原件:

/[0-9a-zA-Z]{1,6}/

表示“匹配包含1到6个字母的子字符串的字母数字字符串”。测试字符串
“Kingkong”
显然符合该规则。

如果您希望正则表达式的意思是“将字母数字字符串严格地匹配为1到6个字母(但不能超过),那么它应该是:

/^[0-9a-zA-Z]{1,6}$/
原件:

/[0-9a-zA-Z]{1,6}/

表示“匹配包含1到6个字母的子字符串的字母数字字符串”。测试字符串
“Kingkong”
显然符合该规则。

正则表达式字符串位于变量中,这是获取它的唯一方法,因此我不能对正则表达式使用字符串文字字符串。@Fred J。如果
doc.valid
变量已经是正则表达式对象,则不需要实例化新的正则表达式。只需执行
doc.valid.test(doc.value)
。否则,解析字符串并获取正则表达式和modifier@FredJ.因为我不能在你编辑的帖子中发表评论,所以我将在这里写下。你没有按照我的建议去做。在实例化RegExp而不是调用test函数时,需要指定修饰符。此外,您得到的结果是正确的,因为您的正则表达式与“Kingkong”字符串匹配。试试看《金刚》。匹配(patt)。你会发现你得到了一场比赛。因此,您可能需要改进您的正则表达式,以实现您的期望。正则表达式字符串位于变量中,这是获取它的唯一方法,因此我不能对正则表达式使用字符串文字字符串。@Fred J。如果
doc.valid
变量已经是正则表达式对象,则无需实例化新的正则表达式。只需执行
doc.valid.test(doc.value)
。否则,解析字符串并获取正则表达式和modifier@FredJ.因为我不能在你编辑的帖子中发表评论,所以我将在这里写下。你没有按照我的建议去做。在实例化RegExp而不是调用test函数时,需要指定修饰符。此外,您得到的结果是正确的,因为您的正则表达式与“Kingkong”字符串匹配。试试看《金刚》。匹配(patt)。你会发现你得到了一场比赛。因此,您可能需要改进您的正则表达式,以完成您希望完成的任务。如果要匹配整个字符串,请使用开始标记和结束标记(
/^str$/
)明确说明它。如果要匹配整个字符串,请使用开始标记和结束标记(
/^str$/
)明确说明它。