Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 regex = new RegExp('^\\([^)]+\\).*?$', 'm'); 预期结果是针对以下实例测试true: (测试)不管什么。\n(另一个测试)再次。。。随便 或 (测试)不管什么。\n\n(另一个测试)再次。。。随便 如果字符串中的任何行以()开头,括号内至少有一个字符,然后在括号后有

在验证用户输入时,我使用正则表达式检查每行的开头(实际上包含内容,跳过双空格),是否总是有一组括号,内容在任何其他字符之前。在摆弄了多个变体之后,我想出了一个最简单的版本,它失败了

var regex = new RegExp('^\\([^)]+\\).*?$', 'm');
预期结果是针对以下实例测试true:

(测试)不管什么。\n(另一个测试)再次。。。随便

(测试)不管什么。\n\n(另一个测试)再次。。。随便

如果字符串中的任何行以
)开头,括号内至少有一个字符,然后在括号后有任何内容之前被
关闭,则应失败;唉,我上面的表达式将忽略任何检查第一行之后的任何行的尝试。如果第二行格式不正确,例如
(test)whatever\n这应该返回false
,那么它仍然会在
.test()
上返回true

一些有效匹配可能包括:

(测试)通过

(测试)通过\n(也)通过

(再次)通过\n\n(也)通过\n(我们)可以整天这样做

(有)可以有\n \n \n \n(数量)的\n(换行符)作为\n \n \n \n \n(长)作为\n(内容)以一组括号开始的\n(行)

(字符的)类型\n \n(不)重要,\n唯一的例外是\n(严格执行)每行开头的\n(开括号和闭括号)

.test()
上应返回false的一些无效匹配包括:

没有

也没有

(无右括号=无

不适用于上述相反的情况)

(是的,到目前为止)实际上…\n开始

一大碗\n(不是!)

)猜猜看

)不好


要验证多行文本中以
(…)
开头的每一行,可以使用以下正则表达式:

/^(?:\(.+?\).*[\r\n]*)+$/

如果任何行开始没有
(…)
模式,则匹配将失败。

您的意思是

var regex = /^(?:(?:^|\r*\n)(?:[\t ]*|\s*\([\t ]*(?:[^\(\)\s][\t ]*)+\)[^\r\n]*))*$/;


可能
/^(?:\([^)]+\).[\r\n]*)+$/
?或我建议使用文字正则表达式表示法。或者你的意思是?添加了一些通过/失败的示例。另一个选项是使用(注意在开始时使用否定)