2013-08-22 2 views
3

str должен быть истинным, если оно имеет по крайней мере один неустановлено, заключенные в круглых скобках:Имея, по крайней мере один-неустановлен

str = (a) 
str = (as bs) 
str = (as e) 

и ложь, если она имеет неустановлена ​​на всех

str = ( ) 

Я не уверен, могу ли я сделать это +, но это условие также передает 0 не-пробелов. Исправьте это, пожалуйста.

/^\([\S+\s*]+\)$\.test(str)/ 
+0

вы имеете в виду * по крайней мере, один непробельный * в первой строке? –

+1

Вы избегаете последней круглой скобки, но не первой. – alergy

+0

Вы имеете в виду противоположное, должно быть верно, когда есть хотя бы одно непробелое и ложное, когда все пробелы? –

ответ

4

Вы можете использовать это:

/^\(.*\S.*\)$/.test(str) 

Это соответствует любому символу, то непробельных характера (что делает его по крайней мере один непробельные символами), а затем любой символ до конец.

0

Вы можете использовать следующее:

^\((?!\s*\)).+\)$ 

Это совпадает с открытыми круглыми скобками (, а затем он терпит неудачу, если за ним следует просто непечатаемым и ), или он принимает всю линию.

0

Предполагая, ул должна удовлетворять ИСТИНА и ЛОЖЬ и раскрой неявно не допускается

^(?:[^()]*\([^\S()]*[^\s()][^\S()]*\))+[^()]*$ 

расширил

^
(?: 
     [^()]* 
     \(
      [^\S()]* 
      [^\s()] 
      [^\S()]* 
     \) 
)+ 
[^()]* 
$ 
Смежные вопросы