title: how do i fix "cannot read property match of undefned" in this code
body: <p>i'm trying to integrate <strong>nativescript-imagepicker plugin</strong> with my Nativescript App, but i get error **cannot read **property match of undefined****
  below is what i have already tried, thanks.</p>
  
  <pre><code>function onSelectSingleTap(args) {  
      var context = imagepickerModule.create({
          mode: "single"
      });
      if (platformModule.device.os === "Android" &amp;&amp; platformModule.device.sdkVersion &gt;= 23) {   
          permissions.requestPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE, "I need these permissions to read from storage")
          .then(function() {
              console.log("Permissions granted!");
              startSelection(context);
          })
          .catch(function() {
              console.log("Uh oh, no permissions - plan B time!");
          });
      } else {
          startSelection(context);
      }
  }
  
  function sendImages(selected) {
      let fileUri = selected.fileUri;
      imageName = extractImageName(fileUri);
  
      var request = {
          url: "http://vvvvvv.com/skog/upload.php",
          method: "POST",
          headers: {
              "Content-Type": "application/octet-stream",
              "File-Name": imageName
          },
          description: "{ 'uploading': " + imageName + " }"
      };
      //get the image source and upload from there
      selected.getImage().then(imageSource =&gt; {
          let temp = fs.knownFolders.temp();
          let uniqueName = '_' + Math.random().toString(36).substr(2, 9);
          let filePath = fs.path.join(temp.path, uniqueName + ".jpg");
          let saved = imageSource.saveToFile(filePath, enums.ImageFormat.jpeg);
          console.log(`item saved:${saved}`);
          var task = session.uploadFile(filePath, request);
  
          task.on("progress", logEvent);
          task.on("error", logEvent);
          task.on("complete", x =&gt; cleanFile(filePath));
      });
      //return task;
  }
  function logEvent(e) {      
          console.log("----------------");
          console.log('Status: ' + e.eventName);
          console.log('Error: ' + e.error);
          // console.log(e.object);
          if (e.totalBytes !== undefined) {
              console.log('current bytes transfered: ' + e.currentBytes);
              console.log('Total bytes to transfer: ' + e.totalBytes);
          }  
      }
  function cleanFile(file){
      fs.remove(file);
  }
  function startSelection(context) {
      context
          .authorize()
          .then(function() {
              imageItems.length = 0;
              return context.present();
          })
          .then(function(selection) {
              selection.forEach(function(selected) {
                  sendImages(selected);
                  //selected.uploadTask = sendImages(selected);             
                  selected.imageName = imageName;
  
                  console.log("----------------");
                  console.log("uri: " + selected.uri);           
                  console.log("fileUri: " + selected.fileUri);
                  console.log('Image name:' + imageName);
  
                  imageItems.push(selected);
              });
              //list.items = selection;
          }).catch(function (e) {
        console.log(e);
        alert(e.message);
          });
  }
  function extractImageName(fileUri) {
    var pattern = /[^/]*$/;
    var imageName = fileUri.match(pattern);
  
    return imageName[0];
  }
  </code></pre>
  
  <p>I don't think the fault is from the php which is why i'm not adding the code to the question, but if you think otherwise, please let me know
  please help</p>