我这样有绳子,
“保存操作将覆盖DB中的[数据];。”
我正在验证这种方式以查找上述字符串是否存在于特定变量中。
var myVar = "The save operation will overwrite [data] in DB;.";
var pattern = /The save operation will overwrite [data] in DB;./;
var exists = pattern.test(myVar);
alert(exists);
为什么即使模式和字符串 myVar 匹配..exists 仅在这种情况下返回 false?
只有当模式字符串=='保存操作将覆盖数据库中的[数据]时,我才希望存在= true;。'
对于其余所有情况,存在的情况应为 = false。
例如:保存操作将更新/覆盖DB中的[数据];。也应该返回 false。
当且仅当此模式完全匹配时,Exist 才应为 true。 “保存操作将覆盖数据库中的[数据];。”
我到底在哪里做错了?
提前致谢。
最佳答案
您正在使用模式匹配,因此您应该转义特殊字符 ( http://www.regular-expressions.info/refcharacters.html )。
正确的语法应该是
var myVar = "The save operation will overwrite [data] in DB;.";
var pattern = /^The save operation will overwrite \[data\] in DB;\.$/;
var exists = pattern.test(myVar);
alert(exists);
注意“[”、“]”和“.”之前的转义字符。另外,插入符号“^”告诉该行应该从那里开始,美元符号“$”告诉该行应该在那里结束。
如果你想保持大小写不变,可以添加“i”。对于多行,添加“g”
var myVar = "The save operation will overwrite [data] in DB;.";
var pattern = /^The save operation will overwrite \[data\] in DB;\.$/gi;
var exists = pattern.test(myVar);
alert(exists);
您可以使用this site测试正则表达式。
关于javascript - 如何检查 JavaScript 中变量中是否存在区分大小写和特殊字符的特定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33229377/