Closed biscoe916 closed 10 years ago
Hmm, yikes, I'm not sure that this one is solvable in a general sense. It's especially a problem if the text is something like: "https://www.google.com/search?q=asdf "
. The  
part will definitely be treated as a query string parameter, and we wouldn't be able to say that  
isn't a valid parameter..
I may have to close this one out (unless you have any other ideas!), but what I would recommend for your case is to preprocess the text by removing all
s before autolinking with something like:
text = text.replace( / /g, ' ' );
Of course, then you have the problem of if users entered multiple spaces, and they need to be represented properly on the HTML page. In that case, replace all double spaces generated by the first statement with a space +
text = text.replace( / /g, ' ' );
text = text.replace( / {2}/g, ' ' );
This will convert the text " "
into " "
, and should display the expected output. Give that a try and then autolink, and let me know how it goes :)
A div's innerHTML:
This code:
Returns:
In my application users enter text in a contentEditable div, and in chrome (and probably other browsers) every other space is converted to a non-breaking space. On submit, I run the Autolinker, and urls right before a non-breaking space are malformed. I assume the Autolinker thinks it's part of a query string.