用于 Firebase 云消息传递的正则表达式
Regex Expression for Firebase Cloud Messaging
我正在尝试检查用户输入的字符串是否用作使用 Firebase 云消息传递发送通知的主题名称。
据我了解,主题名称中唯一允许使用的字符是:
- 小写字母 a 到 z
- 大写字母 A 到 Z
- 数字 0 到 9
- 个字符 - _ . ~%
主题名称包含非法字符时云消息的错误消息是
Notification sent failed: { Error: Topic provided to sendToTopic() must be a string which matches the format "/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]+$/;
通过使用 ^
和 $
,您可以确保正则表达式必须匹配整个字符串才能成功,而不是同时匹配子字符串。
我正在尝试检查用户输入的字符串是否用作使用 Firebase 云消息传递发送通知的主题名称。
据我了解,主题名称中唯一允许使用的字符是:
- 小写字母 a 到 z
- 大写字母 A 到 Z
- 数字 0 到 9
- 个字符 - _ . ~%
主题名称包含非法字符时云消息的错误消息是
Notification sent failed: { Error: Topic provided to sendToTopic() must be a string which matches the format "/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]+$/;
通过使用 ^
和 $
,您可以确保正则表达式必须匹配整个字符串才能成功,而不是同时匹配子字符串。