Checking if userinput is a valid URI in XUL

Is there a built-in function/method that can check if a given string is a valid URI or not in the Mozilla XUL toolkit? I have looked for one but found none, but since this is my first time using XUL and its documentation it could be that I just overlooked it. So I’m just making sure before I start writing my own IsValidURI function.

Answer

The nsIIOService.newURI(…) method is what you’re looking for. It throws NS_ERROR_MALFORMED_URI if the URI string is invalid.

Example:

try {
  var ioServ = Components.classes["@mozilla.org/network/io-service;1"]
                         .getService(Components.interfaces.nsIIOService);
  var uriObj = ioServ.newURI(uriString, uriCharset, baseURI);
} catch (e) {

  // catch the error here

}