如何检查特定字符串是否存在于变量中,在javascript中具有大小写敏感和特殊字符

How to check if particular string is present in variable with case sensitive and special characters in javascript?

本文关键字:特殊字符 javascript 大小写敏感 变量 于变量 检查 何检查 字符串 存在 是否      更新时间:2023-09-26

我这样设置字符串,

"保存操作将覆盖DB中的[data]。"

我正在验证这种方法,以查找上述字符串是否存在于特定变量中。

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 ?

I want exists = true if only if pattern string ==' save操作将覆盖[data] in DB; '

对于其余存在的所有情况应为= false。

ex:保存操作将更新/覆盖DB中的[data];也应该返回false。

Exist当且仅当此模式完全匹配时为真。'保存操作将覆盖DB中的[data]; '

我到底在哪里做错了?

您正在使用模式匹配,因此您应该转义特殊字符(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);

您可以使用此站点测试正则表达式。

在这里你根本不需要正则表达式,看看下面三个"匹配"的版本,使用符合你要求的那个:

var myVar = 'The save operation will overwrite [data] in DB;.';
var pattern = 'The save operation will overwrite [data] in DB;.';
var exists = myVar.indexOf(pattern) > -1;
var startsWith = myVar.indexOf(pattern) == 0;
var strictEqual = myVar === pattern;
alert('Exists: ' + exists + ''n' + 
     'Starts with: ' + startsWith + ''n' + 
     'Strict equal: ' + strictEqual);