这个正则表达式哪里错了?在js中不能用!

请帮忙看一下,这个正则哪里错了,我在js中使用,帮忙改下万分感谢!!!

SELECT\s+(*|((\w+.){0,1}\w+\s*(\w+\s*){0,1})(,\s*((\w+.){0,1}\w+\s*(\w+\s*){0,1}))*\s+FROM\s+(\w+\s*(\w+\s*){0,1})(,\s*(\w+\s*(\w+\s*){0,1}))*)\s+(WHERE\s+(\w+.){0,1}\w+\s*(=|LIKE|IS)\s*'?(\w+.){0,1}[\w%]+'?(\s+(AND|OR)\s*(\w+.){0,1}\w+\s*(=|LIKE|IS)\s*'?(\w+.){0,1}[\w%]+'?\s*)*){0,1}\s*

给*|((\w+.){0,1}\w+\s*(\w+\s*){0,1})外层加个括号.

这里还有一些小问题...有的\s+的位置不正确, 不是*都是在前面的, 比如select a,* ...

最好将{0,1}直接用?代替, 不然看着花眼...

那么长,j注意js中的转义符,和java是不同的,把怀疑不准确的地方用\代替\