Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 Firebase云消息传递的正则表达式_Javascript_Regex_Firebase Cloud Messaging - Fatal编程技术网

Javascript Firebase云消息传递的正则表达式

Javascript Firebase云消息传递的正则表达式,javascript,regex,firebase-cloud-messaging,Javascript,Regex,Firebase Cloud Messaging,我正在尝试检查用户输入的字符串,将其用作使用Firebase云消息发送通知的主题名称 据我所知,主题名称中只允许使用以下字符: 小写字母a到z 大写字母A到Z 数字0至9 字符-.~% 当主题名称包含非法字符时,来自云消息传递的错误消息为 发送通知失败:{错误:提供给sendToTopic()的主题必须是与格式“/topics/[a-zA-Z0-9-.~%+”匹配的字符串 因此,我尝试在JavaScript代码中检查这一点,以防止用户输入非法字符。但我对检查正则表达式的理解显然是错误的,因为

我正在尝试检查用户输入的字符串,将其用作使用Firebase云消息发送通知的主题名称

据我所知,主题名称中只允许使用以下字符:

  • 小写字母a到z
  • 大写字母A到Z
  • 数字0至9
  • 字符-.~%
当主题名称包含非法字符时,来自云消息传递的错误消息为

发送通知失败:{错误:提供给sendToTopic()的主题必须是与格式“/topics/[a-zA-Z0-9-.~%+”匹配的字符串

因此,我尝试在JavaScript代码中检查这一点,以防止用户输入非法字符。但我对检查正则表达式的理解显然是错误的,因为测试一直在验证无效字符是否有效

我使用的代码如下所示:

let sample = "Test Topic Name 20/20"
let trimmedSample = sample.split(' ').join('');
console.log("trimmedSample = " + trimmedSample);

validateString(trimmedSample);

function validateString(inputtxt) {
  var letters = /[0-9a-zA-Z]+/;
  if (letters.test(inputtxt)) {
    console.log("name is Valid");
  } else {
    console.log("name is Invalid");
  }
}
即使主题名称包含无效的“/”字符,检查也会将其验证为有效。事实上,我正在努力寻找它所说的无效字符

如果有人能指出我的错误,我将不胜感激


感谢您当前对字符串的正则表达式检查包含样本。您要做的是确保它与以下内容完全匹配:

var letters = /^[0-9a-zA-Z]+$/;

通过使用
^
$
可以确保正则表达式必须匹配整个字符串才能成功,而不是在子字符串上成功。

Aha…所以我实际上只是检查字符串中的“any”是否有效,而不是“all”是否有效?非常感谢您的帮助。不客气。如果这回答了您的问题,请单击复选标记(✓) 在我答案的左边接受它。这样其他人就知道你得到了(足够的)帮助。另请参见