RegEx在启动时不允许空间并允许中间的一些特殊字符

时间:2016-02-06 08:07:54

标签: jquery regex

目前我有这个

^[^a-zA-Z0-9\\-\\s]+$

表达但它允许特殊字符。我只想在中间允许这些[- .,$% ]字符。

2 个答案:

答案 0 :(得分:0)

您可以使用negative lookahead assertion

$('#input').on('input', function(i, v) {
  $(this).css('color', /^(?!((^[- .,$%].*)|(.*[- .,$%]$)))[^a-zA-Z0-9\-\s]+$/.test(this.value) ? 'green':'red' );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="input" />

<强> Regex explanation

^(?!((^[- .,$%].*)|(.*[- .,$%]$)))[^a-zA-Z0-9\-\s]+$

Regular expression visualization

答案 1 :(得分:0)

这不允许空间和还将允许提及特殊字符

^[A-Za-z0-9_@./#&+-\[\]$%]*$

允许介于两者之间但不是在开始时

^[^-\s][a-zA-Z0-9_\s-_@./#&+-\[\]$%]+$