My ds did something similar at nearly the same age, when he had his first girlfriend. I was kind of disappointed, discouraged, and well, a little horrified to know how much he spent.
But someone gave me some advice, to let the lesson sink in, and we decided to take that advice. We didn't lecture, we let the lesson teach itself. When he needed money for something, he didn't have it, and we didn't pad his bank account. We calmly told him that he blew all his money on a necklace that the girl was wearing. We pointed out that his dad doesn't go around buying me (his mom) a bunch of jewelry. Instead he makes sure we have money for groceries, insurance, mortgage, car, phones, etc, and of course if there's something left over, maybe I get taken out for a nice dinner or flowers.
There's not much in this world that is more immature than a 17 or 18 year old girl or guy. Except maybe a 16 year old or a 19 year old. It takes a little while for reality to sink in.
For now, I'd try to let your son learn this lesson the hard way. He's going to want to go do something with buddies that costs money, and he's not going to have the money. He's going to want to buy dinner for his girl, but he won't be able to afford it. Unfortunately, when she realizes he is out of money, she may very well move on to the next guy, and your son will learn a painful but important lesson.
It took my son a couple of years for him to "get it". He began dating another girl who wanted "anniversary" gifts and dinners, for things like "it's been one month since our first kiss" and "it's been exactly 50 days since you asked me out". He quickly realized that was not a healthy, mature relationship, and that he was some kind of personal, although handsome, ATM.
I wouldn't be too h*** o* your son, since he didn't buy alcohol or drugs, or gamble the money away. What he did was normal, although not acceptable. I'd sit down with him and show him the phone bill. Show him the car insurance bill. Talk to him about the reality of how much he spent for "stuff" for this girl, but calmly and not in an angry way. Even if they got engaged and got married, even if he swears she's the one for him for life, he'll need to learn that life is expensive, and that dating and engagement and marriage mean rent, health insurance, a car payment, etc. Talk to him about how to discern whether a person loves him for him, or for a shopping spree. It's very possible that the girl really likes him, but she's just as young and immature as your son is. Give them time, but give them a dose a reality. Talk to him about not having to keep up with someone who maybe has more spending money than he does. That's a hard lesson. A girl whose mom takes her to Nordstrom's and for manicures and who loves to go shopping and buy impulses may not appreciate that your son is saving money for school and doesn't have an unlimited budget. Teach him about other ways of showing the girl how special she is. And if she doesn't appreciate a walk in the park and a handwritten note and a single flower, what does that mean?