2

我想检查一个字符串是否以ab一个整数结尾。

给定任何 string s,我如何首先检查它是否以ab1orab2或 a结尾b3,如果是,则返回ab1or ab2or ab3

例如,对于 string sdfsadfsab2,我想返回ab2
对于字符串asdfase,我想返回空字符串。

javascript或jquery中是否有任何正则表达式可以做到这一点?谢谢。

4

4 回答 4

7

您所追求的正则表达式很可能是:

/ab[0-9]$/

如果你想要一个测试函数,该函数可能看起来像这样:

function testABInt(string)
{
    var match = string.match(/ab[0-9]$/);
    return match ? match[0] : '';
}

如果ab是小写字符,则仅匹配字符串的结尾,并且如果末尾只有一个int,则匹配不区分大小写,添加i标志和/或添加 a+以匹配所有尾随数字:

/ab[0-9]+$/i
于 2013-02-14T20:29:38.650 回答
2

一种使用方式replace

str.replace(/.*(ab\d+)$/, "$1");

另一种使用方式match

(str.match(/ab\d+$/) || [""]).pop();
于 2013-02-14T20:27:37.303 回答
1
var regex = /([a-zA-Z]{2}[0-9])$/;
var str = "sdfsadfsab2";
console.log(str.match(regex)[0]); //outputs "ab2"

正则表达式的解释:

  • [a-zA-Z]- 小写和大写字母 az 的集合
  • {2}- 意思是“恰好重复 2 次”
  • [0-9]- 从 0 到 9 的数字集合
  • $- 意思是“字符串的结尾”
于 2013-02-14T20:27:57.933 回答
1

用于$匹配字符串的结尾:

'foo2'.match(/[a-z]{2}\d$/);
于 2013-02-14T20:28:07.047 回答