Javascript 正则表达式,仅接受字符串第一位的字母
我有一个文本字段,它应该只接受字母、连字符、空格和撇号。此外,它应该只接受连字符、空格和撇号,开头至少有一个字母 我试过这个:Javascript 正则表达式,仅接受字符串第一位的字母,javascript,regex,Javascript,Regex,我有一个文本字段,它应该只接受字母、连字符、空格和撇号。此外,它应该只接受连字符、空格和撇号,开头至少有一个字母 我试过这个: var testExp = new RegExp("[a-z' -]","gi"); 这允许在任何位置使用字母、连字符、空格和撇号。我需要帮助限制字符串开头的连字符、空格和撇号 例如: 测试abc应接受 -abc不应接受\A[A-Za-z][A-Za-z\'\s\-]+\z \A表示字符串的开头 [A-Za-z]表示以大写或小写
var testExp = new RegExp("[a-z' -]","gi");
这允许在任何位置使用字母、连字符、空格和撇号。我需要帮助限制字符串开头的连字符、空格和撇号
例如:
测试abc应接受
-abc不应接受
\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'-]*$”
测试字符串的其余部分是否由允许的字符组成。尝试以下操作:
var testExp=newregexp(“^[a-z][a-z'-]*”,“gi”);
^
符号将强制从字符串开始发生。
请在此处阅读更多内容(您可以控制要提取或验证的内容):有关完整的解释和测试,请参阅:
像这样试试吧。^[a-z][a-z'-]*
我已经试过了。它在字符串中的任何地方都不允许连字符、空格和撇号。你可能会做错什么,检查这里,正则表达式就行了:我也试过。它在字符串中的任何地方都不允许连字符、空格和撇号,而不仅仅是在开头。试试/^[a-z][a-z'-]*$/i.test('test-abc'))
出于某种原因,我在使用“g”修饰符时也得到了奇怪的结果,但这很有效。这也是测试正则表达式的一个很好的资源。@anubhava我相信这正是@Techno希望它不匹配的原因。-abc
是的,我知道,但OP编写的它在任何地方都不允许连字符、空格和撇号在字符串
中,哪个显示不正确
^[a-zA-Z][a-zA-Z0-9-'\s]+$