使用JavaScript匹配完全字符串

时间:2009-01-15 15:45:05

标签: javascript regex

如何测试RegEx是否与字符串完全匹配

var r = /a/;
r.test("a"); // returns true
r.test("ba"); // returns true
testExact(r, "ba"); // should return false
testExact(r, "a"); // should return true

5 个答案:

答案 0 :(得分:80)

或者

var r = /^a$/

function matchExact(r, str) {
   var match = str.match(r);
   return match && str === match[0];
}

答案 1 :(得分:16)

以不同方式编写正则表达式:

var r = /^a$/;
r.test('a'); // true
r.test('ba'); // false

答案 2 :(得分:9)

如果你不使用任何占位符(正如“确切”似乎暗示的那样),那么字符串比较呢?

如果您确实使用占位符,^$分别匹配字符串的开头和结尾。

答案 3 :(得分:0)

var data =   {"values": [
    {"name":0,"value":0.12791263050161572},
    {"name":1,"value":0.13158780927382124}
]};

//JSON to string conversion
var a = JSON.stringify(data);
// replace all name with "x"- global matching
var t = a.replace(/name/g,"x"); 
// replace exactly the value rather than all values
var d = t.replace(/"value"/g, '"y"');
// String to JSON conversion
var data = JSON.parse(d);

答案 4 :(得分:-2)

根据现代javascript标准,这是(IMO)到目前为止最好的解决方案,它是一行中的最佳解决方案:

const str1 = 'abc';
const str2 = 'abc';
return (str1 === str2); // true


const str1 = 'abcd';
const str2 = 'abc';
return (str1 === str2); // false

const str1 = 'abc';
const str2 = 'abcd';
return (str1 === str2); // false