You really need to combine the hash. Right now you are looking for vocabulary characters that follow a position, immediately followed by one of several characters that are not word characters. For obvious reasons, this fails. Try instead:
string.match(/(?=[\s*#])[\s*#]\w+/g)
Of course, now the view is superfluous, so you can delete it:
string.match(/(^|\s)#(\w+)/g).map(function(v){return v.trim().substring(1);})
This returns the desired value: [ 'iPhone', 'delete' ]
Here is a demo: http://jsfiddle.net/w3cCU/1/
source share