检查表达式是仅包含英文字符还是数字字符的最简单方法是什么?没有空格,没有其他字符。
p.s - 第一个字符不能是数字。大写或小写。
答案 0 :(得分:7)
我会使用:/^[A-Za-z][A-Za-z0-9]*$/
。以下是相同的例子:
/^[A-Za-z][A-Za-z0-9]*$/.test("expression");
/^[A-Za-z][A-Za-z0-9]*$/.test("EXPRESSION");
/^[A-Za-z][A-Za-z0-9]*$/.test("e123xpression");
/^[A-Za-z][A-Za-z0-9]*$/.test("E123xpression");
/^[A-Za-z][A-Za-z0-9]*$/.test("1expression");
没有边界(^
和$
)regexp也匹配任何子字符串。
编辑:更新了无效表达
答案 1 :(得分:5)
最简单的:
/^[a-z][a-z0-9]*$/i
表达式的解释:
/
- open expression ^
- 字符串必须从这里开始。 [a-z]
- 在a到z之间只找到一个字符,包括[a-z0-9]*
- 找到a到z之间的任何字符序列,包括0-9之间,包括(“任何序列”部分最后是*)$
- 字符串必须在此处结束。 /
- 关闭表达i
- 表达式不区分大小写使用以下案例进行测试
var tests = //key = case, value = expected results
{ "joe" : true //only lower case
, "JOE" : true //only capital
, "charsAndCaps" : true //mixed case
, "ABC444" : true //caps and numbers
, "AAaaAA3276" : true //mixed case with numbers
, "111Joe" : false //starts with number
, "112345" : false //only numbers
, "asaaa$" : false //non-alphanumeric char in the end
, "asaaaלא" : false //non-latin char in the end
, "asaaнет" : false //non-latin char in the end
, "#asaaa" : false //non-alphanumeric char in the start
, "לאasaaa" : false //non-latin char in the start
, "нетasaa" : false //non-latin char in the start
, "aaלאasaa" : false //non-latin char in the middle
, "sssнетaa" : false //non-latin char in the middle
, "as&&aaa" : false //non-alphanumeric char in the middle
, "" : false //empty string
}
答案 2 :(得分:3)
试试这个:
/^[a-z][a-z\d]*$/i
添加一些例子:
/^[a-z][a-z\d]*$/i.test("check#$#"); // false
/^[a-z][a-z\d]*$/i.test("1check"); // false
/^[a-z][a-z\d]*$/i.test("check1"); // true
/^[a-z][a-z\d]*$/i.test("cHEck1"); // true
答案 3 :(得分:2)
使用此:[a-zA-Z][a-zA-Z0-9]*
答案 4 :(得分:1)
/ ^ [A-ZA-Z \ d] + $
/^[A-Za-z\d]+$.test("TEST1"); // true
/^[A-Za-z\d]+$.test("Test2"); // true
/^[A-Za-z\d]+$.test("test3"); // true
/^[A-Za-z\d]+$.test("4TEST"); // true
/^[A-Za-z\d]+$.test("5Test"); // true
/^[A-Za-z\d]+$.test("6test"); // true
/^[A-Za-z\d]+$.test("TE7ST"); // true
/^[A-Za-z\d]+$.test("Te8st"); // true
/^[A-Za-z\d]+$.test("te9st"); // true
答案 5 :(得分:0)
试试这个/^[a-z]+[a-z0-9]*$/i