用RegEx防止领先的空白

时间:2011-10-22 19:18:44

标签: javascript jquery regex input validation

我正在尝试使用(目前)以下RegEx限制审核发布文本:

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

但是,文本本身需要包含''形式的空格,但我不想让第一个句子有空格,即帖子不能有前导空格。例如,(我将在下面的示例中使用'_'表示'')表单允许:

This is a sentence.

但它不允许:

  

(使用'_'代表'')

     

_This is a sentence

     

__This is a sentence

     

我尝试使用否定,但我只是不太了解RegEx如何做到这一点。这整个领域并不适合我,所以希望有人可以提供帮助。提前谢谢!

注意: 我在RegEx中需要这个,因为我有一个实时馈送验证器告诉用户他/她的输入有效/无效。如果您碰巧想到更好的事情,另一个允许我实时意识的选项对我的目的来说就足够了。

3 个答案:

答案 0 :(得分:13)

您还可以使用negative lookahead

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

答案 1 :(得分:1)

如果您只想允许这些字符具有第一个不应该是空格的限制,则必须重复该字符组:

/^[a-zA-Z0-9 _.'"()!?&@][a-zA-Z0-9 _.'"()!?&@\s]+$/

或者你进行了两次测试:

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

答案 2 :(得分:0)

只需在正则表达式的开头使用^ \ S,其中'^'是字符串的开头,'\ S'是空格字符类的否定。

相关问题