v1
- by weswigham 5/21/202100
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
const str = "\r\r\r\t\r\t\r\r  \r\r\r  \r\r \r\r  \r\r   \r\r\r \r\r  \r\r  \r\r\r \r \r\r     \r\r \r\r   \r\r  \r\r \r\r  \r\r   \r\r\r \r\r  \r\r  \r\r\r \r\r\t\r\t\r\r  \r\r\r  \r\r \r\r  \r\r   \r\r\r \r\r  \r\r  \r\r\r \r \r\r     \r\r \r\r   \r\r  \r\r \r\r  \r\r   \r\r\r \r\r  \r\r  \r\r\r \r\r \r\r \r\r  \r\r \r\r a"

const isWhitespace = /\s/;
function trimEndImpl(s) {
    let end = s.length - 1;
    while (end >= 0) {
        if (!isWhitespace.test(s.charAt(end))) break;
        end--;
    }
    return s.slice(0, end + 1);
}
delete caserun single casemove downdrag and drop case


ready



str.trimEnd();
delete caserun single casemove upmove downdrag and drop case


ready



str.replace(/\s+$/g, "");
delete caserun single casemove upmove downdrag and drop case


ready



trimEndImpl(str);
delete caserun single casemove updrag and drop case


ready



str.split("").reverse().join("").replace(/^\s+/g, "").split("").reverse().join("")
Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN