我正在尝试使用(目前)以下RegEx限制审核发布文本:
^([a-zA-Z0-9 _\.\'\"\(\)\!\?\&\@]){1,}$
但是,文本本身需要包含''形式的空格,但我不想让第一个句子有空格,即帖子不能有前导空格。例如,(我将在下面的示例中使用'_'表示'')表单允许:
This is a sentence.
但它不允许:
(使用'_'代表'')
_This is a sentence
__This is a sentence
等
我尝试使用否定,但我只是不太了解RegEx如何做到这一点。这整个领域并不适合我,所以希望有人可以提供帮助。提前谢谢!
注意: 我在RegEx中需要这个,因为我有一个实时馈送验证器告诉用户他/她的输入有效/无效。如果您碰巧想到更好的事情,另一个允许我实时意识的选项对我的目的来说就足够了。
答案 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'是空格字符类的否定。