正则表达式只接受字符串第一位的字母

我有一个只能接受字母、连字符、空格和撇号的文本字段。此外,它应该只接受连字符、空格和撇号,开头至少有 1 个字母。

我试过这个:

var testExp = new RegExp("[a-z' -]","gi");

这允许在任何地方使用字母、连字符、空格和撇号。我需要帮助限制字符串开头的连字符、空格和撇号。

例子:

测试 abc 应该接受

-abc 不应接受


心有法竹
浏览 225回答 4
4回答

达令说

\A[A-Za-z][A-Za-z\'\s\-]+\Z\A表示字符串的开始[A-Za-z]表示以大写或小写字母开头的表达式。[A-Za-z\'\s\-]+ 加号 (+) 表示 1 个或多个 \s 是空格 \- 是连字符,\' 是撇号。 \Z是字符串的结尾。结合起来,它们应该可以帮助您解决问题。

桃花长相依

类似的东西var testExp = new RegExp("^[a-z][a-z' -]*$","gi");应该工作。^是表示字符串的开头,而$是表示字符串的结尾。所以^[a-z]测试开头是否有字母字符,并[a-z' -]*$"测试字符串的其余部分是否由允许的字符组成。

30秒到达战场

尝试这个:var testExp = new RegExp("^[a-z][a-z' -]*","gi");该^符号将强制从字符串的开头开始发生。

翻过高山走不出你

完整的解释和测试见:https://regex101.com/r/5xmC0j/1^[a-zA-Z][a-zA-Z0-9-'\s]+$
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript