Regex to remove all non alpha-numeric and replace spaces with +

This is actually fairly straightforward.

Assuming str is the string you're cleaning up:

str = str.replace(/[^a-z0-9+]+/gi, '+');

The ^ means "anything not in this list of characters". The + after the [...] group means "one or more". /gi means "replace all of these that you find, without regard to case".

So any stretch of characters that are not letters, numbers, or '+' will be converted into a single '+'.

To remove parenthesized substrings (as requested in the comments), do this replacement first:

str = str.replace(/\(.+?\)/g, '');

function replacer() {

  var str = document.getElementById('before').value.
    replace(/\(.+?\)/g, '').
    replace(/[^a-z0-9+]+/gi, '+');

  document.getElementById('after').value = str;
}

document.getElementById('replacem').onclick = replacer;
<p>Before:
  <input id="before" value="Durarara!!x2 Ten" />
</p>

<p>
  <input type="button" value="replace" id="replacem" />
</p>

<p>After:
  <input id="after" value="" readonly />
</p>

 str = str.replace(/\s+/g, '+');
 str  = str.replace(/[^a-zA-Z0-9+]/g, "");
  • First line replaces all the spaces with + symbol
  • Second line removes all the non-alphanumeric and non '+' symbols.