Check if a given string is valid romaji
Ruby, 96 149 bytes

Regex solution to match all the valid kana. Interestingly, "ecchi" is not valid according to the current rules, but perhaps it's for the best.



-&gt;s{s.gsub(/(?![dt]u)(sh|ch|([gbknhmrp])\2?y?|([zdst])\3?)?[auo]|(\g&lt;2&gt;)?\4?[ie]|(\g&lt;3&gt;)\5?e|ww?[ao]|n|tsu|([fv])\6?u|jj?i|j?y?[aou]|yy[aou]/){}==""}


Try it online! feat. Cruel Angel's Thesis