2016-02-06 128 views
-3

一些特殊字符目前我有這個正則表達式不允許在出發空間,並允許在中間

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

表達,但它允許特殊字符。我只想讓這些[- .,$% ]中間的字符。

+0

嘗試['^ \ S [A-ZA-Z0-9。, $%\ s-] * $'](https://regex101.com/r/vP3tT0/3) – Tushar

+0

嘗試'^ [a-zA-Z0-9] +(?:[ - 。,$%] [ a-zA-Z0-9] +)* $''' –

回答

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

+0

不工作pranav ....謝謝你的答案請給我建議更多 – Ganesh

+0

@Ganesh請加上有效和無效的字符串 –

0

這不會讓空間&也將允許提特殊字符

^[[email protected]/#&+-\[\]$%]*$ 

對於允許之間而不是在開始

^[^-\s][a-zA-Z0-9_\[email protected]/#&+-\[\]$%]+$ 
+0

不工作......... ......請給我建議更多 – Ganesh

+0

/^ [^ - \ S] [a-zA-Z0-9_ \ s-。 /&\ [\] $%] + $ /它正在工作,但允許中間的所有特殊字符 – Ganesh

+0

所以現在的實際問題是什麼?我的意思是它應該允許的地方? 會好的,如果ü提供一個有效的和無效的一個參考串 –