First off I'm laughing at the responses who don't seem to know what functional programming is... or what languages restrict you to it. MOST languages now are at minimum hybrid, allowing for and using both.
JavaScript for example is NOT 'strictly' a functional language. EVERY variable type is an object with methods and properties. FUNCTIONS are in fact objects in JavaScript even when you're trying to use it as a functional/procedural language, meaning that JAVASCRIPT IS NOT A FUNCTIONAL LANGUAGE! No matter how much you may try to use it as such...
There are few if any truly "functional/procedural only" web languages and this is by design as the DOM (document object model) is an integral part of how HTML works and how you use it client-side. Server-side development therefore tends to follow this mode of thought as well.
Like you CAN use PHP as a functional/procedural language only, but you get into mysqli or PDO it's time to put on the big boy pants and use objects. Whilst sure, mysqli does have procedural wrappers for the object based functionality, those are exactly that -- WRAPPERS -- introducing uneccessary overhead and existing as little more than a crutch for the people migrating from mysql_ functions that cannot extract their head from ten years ago's rectum.
It is to that end that questing for a suitable "functional language" for web programming is a flawed concept, and whilst certainly possible (hell you could use vanilla C or Pascal if you wanted) it is NOT something I would recommend.
Man up and learn to use objects! Just don't go overboard and use them for EVERYTHING -- that's where IMHO a lot of languages (Java for example) go bits up face-down as they try to shoe-horn everything into that model, and the result is often less than desirable.
Functions/procedures handle static tasks extremely well, particularly in places where you can pass by reference or handle multiple data types off one call. Objects shine for restricting scope whilst retaining values, creating pointered lists, and a host of other specific uses.
Each has their place, and that's why so far as I'm concerned the better languages allow for BOTH! Restricting yourself to one or the other is a pointless restriction.
ClojureScript. There are quite some React.js bindings out there you may reuse. And ClojureScript actually integrates quite well with JavaScript community since it's using Google Closure Compiler which is maintained by Google. So it's like new languages based on Google techniques. Elm sounds funs but I'm not writing Elm for some reasons. But I'm sure ClojureScript is a much closer choice.
Your first consideration should be javascript.
Javascript (among other paradigms) supports functional programming. ES6, in conjugation with libraries like Ramda, mori, deku etc. - is a compelling (and accessible) stack for web development with a very rich ecosystem.
In addition, clojure and clojurescript are good contenders and there is a good ecosystem growing around them. I have not used clojure(script) personally but given my basic familiarity with other variants of lisp (elisp) I can appreciate the power of its homoiconic syntax.
Next, I would recommend you to consider F#.
F# is a mature, open source, cross-platform, functional-first programming language. It empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code.
I have been exploring F# over last few months and its powerful type system combined with type inference and clean python inspired indented syntax makes it an amazing language. Using F# in conjugation with javascript targets (like Fabel or Funscript) you can have your entire web stack in F#. While it is widely used in financial domain, it's ecosystem around web application is development is still evolving. However F# is built around interoperability and its functional first but imperative & OOP friendly nature allows you to benefit from the full .net ecosystem in your backend and javascript ecosystem in your frontend.
Suave is a good starting point for web programming in F#. It is a very approachable web framework and its documentation has plenty of examples that illustrate F#'s concise, readable and typesafe syntax. For example this is a web server that greets users with "Hello world":
open Suave
startWebServer defaultConfig (Successful.OK "Hello World!")
The third alternative you should consider is Elixir.
Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
While unlike F# it does not offer you a powerful type system (though third party solutions like dialyxir exist), it does provide you with Erlang OTP - a powerful ecosystem for concurrent and distributed computing. While Elixir ecosystem is great for backend, if you are looking for a language that provides you some of the similar elegant language level features like currying, pattern matching and pipe operator for left to right function composition you can consider pairing it with livescript.
Livescript is a functional language that provides with a syntax sugar over javascript (similar to coffeescript) and offers seamless interoperability with javascript libraries (zero code required for bridging or wrapping javascript libraries).
There are other alternatives like Elm (mostly the ecosystem is focussed on frontend and interoperability requires more effort) and Haskell+Purescript/Haste (Much less approachable and more focussed on purity than pragmatism) which you can explore.
Depends on what you want to achieve. I would not try to force functional programming or any paradigm at all! Just use whatever fits your needs best.
For example if your aim is to develop a Node.JS chat application, you might want to go with OO, depending on the feature set.
So to answer your question: Select the language which fits your needs. Most languages could be used for web development to a certain degree. You could even go with Perl or C for web development if it is the best match for your requirements.
Ketan Shukla
One word. ELM. It's all you'll ever need. The future of web programming.