正则表达式检查字符串的第一个字符

3
我想检查一个字符串的第一个字符是否是字母。我的正则表达式是:
 '/^([a-zA-Z.*])$/'

这个不起作用。它有什么问题?

3个回答

13

你的正则表达式不需要 .*,也不应该有 $ 符号。

'/^([a-zA-Z])/'

实际上,如果您不需要知道这个字母是什么,您可以使用更简单的方法:

'/^[a-zA-Z]/'

// These expressions are true
/^[a-zA-Z]/.test("Sample text")

var re = new RegExp('^[a-zA-Z]');
re.test('Sample text');

可能原帖作者的意图是 '/^([a-zA-Z].*)$/' - Cameron
@Cameron:我不确定那个正则表达式有任何意义,更别说它是否实现了OP想要的功能。 - Peter C
+1 表示“你没问题”,但你也可以使用相同的价格 /^[a-z]/i - qwertymk
@alpha123:这是完全有道理的,因为所有字符都被捕获在第一组中(与您的答案相反,它等同于'/^[a-zA-Z]/'),但似乎并不是OP最初寻找的东西;-) - Cameron

2
请尝试以下操作:
'/^[a-zA-Z].*$/'

该函数检查第一个字母是否在字母表中,并允许之后的任何字符。


这对我不起作用。我在Android上尝试过了。它接受任何字符作为第一个字母。 - jrh
@jrhamza 对我来说有效。虽然我没有在Android上尝试过,但我认为它使用的是Java的正则表达式引擎,大多是PCRE-ish,我想。 - Peter C

0
我能够通过这个正则表达式 /^[a-zA-Z].*$/ 单独筛选出上述答案中的第一个字母,但我不需要 .\*$,所以我使用了 /^[A-J]/g(在我的作业中工作,因此使用 A-J)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接