Как написать регулярное выражение для совпадения строк, которое начинается с @ или заканчивается,? - PullRequest
7 голосов
/ 13 июля 2011

Как написать регулярное выражение для совпадений строк, которое начинается с @ или заканчивается ,.Я ищу код в JavaScript.

Ответы [ 3 ]

13 голосов
/ 13 июля 2011

Решение RegEx будет:

var rx = /(^@|,$)/;
console.log(rx.test(""));    // false
console.log(rx.test("aaa")); // false
console.log(rx.test("@aa")); // true
console.log(rx.test("aa,")); // true
console.log(rx.test("@a,")); // true

Но почему бы просто не использовать строковые функции для получения первых и / или последних символов:

var strings = [
  "",
  "aaa",
  "@aa",
  "aa,",
  "@a,"
];
for (var i = 0; i < strings.length; i++) {
  var string = strings[i],
    result = string.length > 0 && (string.charAt(0) == "@" || string.slice(-1) == ",");
  console.log(string, result);
}
10 голосов
/ 13 июля 2011

Для строки, которая начинается с @ или заканчивается запятой, регулярное выражение будет выглядеть так:

/^@|,$/

Или вы можете просто сделать это:

if ((str.charAt(0) == "@") || (str.charAt(str.length - 1) == ",")) {
    // string matched
}
1 голос
/ 13 июля 2011
'@test'.match(/^@.*[^,]$|^[^@].*,$/) // @test
'@test,'.match(/^@.*[^,]$|^[^@].*,$/) // null
'test,'.match(/^@.*[^,]$|^[^@].*,$/) // test,
'test'.match(/^@.*[^,]$|^[^@].*,$/) // null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...