I took a vow to spend 5 riyals in charity if I committed a certain sin, but I did not specify a certain time-frame for my vow. I committed this sin more than once and gave 5 riyals in charity more than once as well. I am sincerely remorseful for taking that vow. What is the religious ruling in this regard? Should I keep fulfilling the vow throughout my life?
All perfect praise be to Allaah, The Lord of the Worlds. I testify that there is none worthy of worship except Allaah, and that Muhammad is His Slave and Messenger.
You should fear Allaah, the Exalted, give up this sin, and turn to Allaah, the Exalted, in sincere repentance. When the person takes a vow to give up sins, his vow is not valid or binding because he is already obliged to give up sins by the Sharee'ah, and he is in no need of taking such a vow. Moreover, when the person takes a vow to do an obligatory act, then his vow is not valid or binding because it is already obligatory on Muslims who are competent for religious assignments. In principle, the vow is to do a recommended—not obligatory—righteous act that brings him closer to Allaah, the Exalted. Khaleel said, "A vow is considered binding and valid when the person makes a vow to do an act that is recommended..." [Al-Mukhtasar]
Hence, you should turn to Allaah, the Exalted, in repentance, seek His forgiveness, and give up sins and misdeeds. According to the opinion of some scholars, it would be better and more prudent in terms of clearing you of your liability to offer an expiation like that for breaking an oath.
Allaah Knows best.
You can search for fatwa through many choices