首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >匹配精确字符串

匹配精确字符串
EN

Stack Overflow用户
提问于 2011-06-10 04:03:09
回答 3查看 183.7K关注 0票数 198

如果文本是完全匹配的,则仅匹配的正则表达式(如果重要,则使用JavaScript )是什么?也就是说,字符串的另一端不应该有额外的字符。

例如,如果我试图匹配abc,那么1abc11abcabc1就不会匹配。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-10 04:04:31

使用开始和结束分隔符:^abc$

票数 374
EN

Stack Overflow用户

发布于 2011-06-10 04:26:03

那得看情况。你可以

代码语言:javascript
复制
string.match(/^abc$/)

但这与以下字符串不匹配:“字母表的前3个字母是abc.。不是abc123”。

我认为你应该使用\b (单词边界):

代码语言:javascript
复制
var str = 'the first 3 letters of the alphabet are abc. not abc123';
var pat = /\b(abc)\b/g;
console.log(str.match(pat));

现场示例:http://jsfiddle.net/uu5VJ/

如果前一种解决方案对您有效,我建议不要使用它。

这意味着您可能拥有类似以下内容的内容:

代码语言:javascript
复制
var strs = ['abc', 'abc1', 'abc2']
for (var i = 0; i < strs.length; i++) {
    if (strs[i] == 'abc') {
        //do something 
    }
    else {
        //do something else
    }
}

而你可以使用

代码语言:javascript
复制
if (str[i].match(/^abc$/g)) {
    //do something 
}

这将是相当多的资源密集型。对我来说,一般经验法则是对于简单的字符串比较使用条件表达式,对于更动态的模式使用正则表达式。

有关JavaScript正则表达式的更多信息:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

票数 49
EN

Stack Overflow用户

发布于 2011-06-10 04:08:47

"^“表示行的开头,"$”表示行的末尾。例如:

代码语言:javascript
复制
var re = /^abc$/;

将匹配"abc“,但不匹配"1abc”或"abc1“。您可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions上了解更多信息

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6298566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档