在句子末尾匹配特定的单词

时间:2018-11-20 08:44:51

标签: javascript angularjs regex

我使用此正则表达式来检查指定字段中的句子必须以轮廓字母结尾。这是正则表达式

$scope.pattern = /\b(?:za(?:ZA)?|dtn?|ZA?|DTN)$/;
$scope.error = "must end in za or dtn"

以上想法是,具有模型“ pattern”的字段必须以za或ZA或dtn或DTN结尾。但是目前只有在以za结尾时才标记错误

2 个答案:

答案 0 :(得分:4)

您的RegEx看起来不必要地复杂。试试这个:

/(za|ZA|dtn|DTN)$/

或者这个:

/(za|dtn)$/i
// Uses the 'i' flag to indicate "case-insensitive"

如果输入以zaZAdtnDTN结尾,则两者都将匹配。

如果您只是做一个简单的匹配,就不必指出(?:non-capturing group)

答案 1 :(得分:1)

对于大写字母,您应该使用(?i)标志,而不是针对字母的不同大小写进行过多组合。我认为您可以简单地更改正则表达式并这样写,

/(?:\bza|DTN)$/i