Do I have to apply for a new visa if my passport has expired, but my visa is still valid?
No, if your valid visa is undamaged and unmarked.
You can still travel to the U.S. with your old visa as long as no holes are punched through your visa and if there are no markings on it. You may not be able to gain entry into the U.S. with an expired passport. You will need to apply for and get a new one before your trip. But since your visa is valid, you can use both your old passport with the valid visa and your new passport to travel to the U.S.
The purpose of your travel should match your current valid nonimmigrant visa. For example, if you hold a B1/B2 visa and if you still intend to temporarily visit the U.S. for tourism or for business, you can use the same visa. But if you hold a B visa and if you wish to travel to the U.S. for education or employment, you will have to get a new visa that matches the purpose of your trip to the U.S.
Likewise, your name and other personal information on both passports should be the same. Both passports should have been issued by the same country. If your name has been changed due to marriage, you can submit a copy of your marriage certificate as proof.
Remember that you cannot travel to the U.S. with a damaged visa. In that case, you will have to get a new visa.
Check out our immigration blog for more immigration facts!