Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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/2/jquery/75.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_Jquery_Regex_Input_Validation - Fatal编程技术网

Javascript 使用正则表达式防止前导空格

Javascript 使用正则表达式防止前导空格,javascript,jquery,regex,input,validation,Javascript,Jquery,Regex,Input,Validation,我试图用(目前)以下正则表达式限制评论发布文本: ^([a-zA-Z0-9 _\.\'\"\(\)\!\?\&\@]){1,}$ 但是,文本本身需要包含“”形式的空格,但我不想让第一句有空格,即文章不能有前导空格。例如,(在下面的示例中,我将使用“u”表示“”),表单将允许: 这是一个句子。 但它不允许: (使用“\”表示“”) \u这是一个句子 \u这是一个句子 等等 我试图使用否定,但我对正则表达式的理解还不够透彻,无法掌握如何使用它。整个领域都不适合我,所以希望有人能帮

我试图用(目前)以下正则表达式限制评论发布文本:

^([a-zA-Z0-9 _\.\'\"\(\)\!\?\&\@]){1,}$
但是,文本本身需要包含“”形式的空格,但我不想让第一句有空格,即文章不能有前导空格。例如,(在下面的示例中,我将使用“u”表示“”),表单将允许:

这是一个句子。

但它不允许:

(使用“\”表示“”)

\u这是一个句子

\u这是一个句子

等等

我试图使用否定,但我对正则表达式的理解还不够透彻,无法掌握如何使用它。整个领域都不适合我,所以希望有人能帮我。提前谢谢

注:
我在RegEx中需要它,因为我有一个livefeed验证器告诉用户他/她的输入是有效/无效的。另一个允许我实时感知的选项对于我来说就足够了,如果您碰巧想到了更好的方法。

如果您只想允许这些字符,并且限制第一个字符不应是空白,则必须重复字符组:

/^[a-zA-Z0-9 _.'"()!?&@][a-zA-Z0-9 _.'"()!?&@\s]+$/
或者你做两个测试:

if(!/^\s/.test(str) && /^[a-zA-Z0-9 _.'"()!?&@]+$/.test(str)) {
    // valid
}
您还可以使用:

^(?!\s)([a-zA-Z0-9 .'”()!?&@]){1,}$

只需在正则表达式的开头使用^\S,其中“^”是字符串的开头,而“\S”是空白字符类的求反。

+1啊,忘记了向前看…再次;)(无需转义字符组中的字符)。这只阻止了“”的一个实例,我如何扩展它以防止理论上的无限量?@Matt:你是说第一个还是第二个表达式?如果第一个字符不是空白,一切都很好,不是吗?不,我需要在文本之前没有任何空白。这就是为什么我用2来显示上面的示例“空白也不起作用。@马特:我认为你把问题复杂化了。不管开头有多少空白,第一个字符总是一个。因此,只测试第一个字符就足够了。如果不是空白,它是字母,所以没有前导空白。但我实际上不同意。”你是如何运用这个表达的,所以我可能遗漏了什么。