【发布时间】:2011-07-13 06:34:35
【问题描述】:
如何为以@ 开头或以, 结尾的字符串匹配编写正则表达式。我正在寻找 JavaScript 代码。
【问题讨论】:
标签: javascript regex string
如何为以@ 开头或以, 结尾的字符串匹配编写正则表达式。我正在寻找 JavaScript 代码。
【问题讨论】:
标签: javascript regex string
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);
}
【讨论】:
对于以 @ 开头或以逗号结尾的字符串,正则表达式如下所示:
/^@|,$/
或者你,可以这样做:
if ((str.charAt(0) == "@") || (str.charAt(str.length - 1) == ",")) {
// string matched
}
【讨论】:
'@test'.match(/^@.*[^,]$|^[^@].*,$/) // @test
'@test,'.match(/^@.*[^,]$|^[^@].*,$/) // null
'test,'.match(/^@.*[^,]$|^[^@].*,$/) // test,
'test'.match(/^@.*[^,]$|^[^@].*,$/) // null
【讨论】: