Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式,仅接受字符串第一位的字母_Javascript_Regex - Fatal编程技术网

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]+$