Assuming that there is an input field named fieldDelimiter, and user input "\\t", i should translate '\\t' to '\t'. ('\\n' to '\n', '\\u0001' to '\u0001' .etc). Is there a common function to do this?
            Asked
            
        
        
            Active
            
        
            Viewed 43 times
        
    0
            
            
        - 
                    Why wouldn't replace work, especially since the input value is going to be a string anyway? – Todd Mar 30 '20 at 04:08
- 
                    why not like this: `const newStr = "\\t\\nFoo bar baz \\u0001".replace(/(\\.+)\b/gi, '\$1')` – Todd Mar 30 '20 at 04:23
- 
                    1@Todd "\\t\\nFoo bar baz \\u0001".replace(/(\\.+)\b/gi, '\$1') === "\\t\\nFoo bar baz \\u0001", not wanted. – linmu Mar 30 '20 at 06:23
- 
                    you're right... I was forgetting a crucial detail: I was escaping my own capturing group... lol. "\\t\\nFoo bar baz \\u0001".replace(/(\\\\.+)\b/gi, '\$1') – Todd Mar 30 '20 at 21:09
1 Answers
1
            
            
        You can use JavaScript's replace() function to replace \\ to \
https://www.w3schools.com/jsref/jsref_replace.asp
To escape \, you can refer the code below:
<html>
    <body>
        <input type="text" id="inputValue">
        <button onclick="removeSlash()">Remove</button>
        <div id="result">
        </div>
    </body>
    <script>
        function removeSlash(){
            var inputValue = document.getElementById("inputValue");
            var result = document.getElementById("result");
            var removed = inputValue.value.replace("\\\\", "\\");
            result.innerHTML = removed;
        }
    </script>
</html>
 
    
    
        Lim Wen Rong
        
- 51
- 5
- 
                    \ is escape charactor,\t or \u0001 is a single charactor, I can not just replace \\ to \ – linmu Mar 30 '20 at 03:48
- 
                    In your case, if inputValue is '\\t', then removed will still be '\\t', you can never translate '\\t' to '\t' by relace method, just replace '\'. – linmu Mar 30 '20 at 06:32
- 
                    Do you means you have multiple \\t \\n or something? Because based on the code given, it will convert \\t to \t or \\n to \n – Lim Wen Rong Mar 30 '20 at 06:49
- 
                    If in this case, you can refer this answer for replaceall https://stackoverflow.com/questions/1144783/how-can-i-replace-all-occurrences-of-a-string – Lim Wen Rong Mar 30 '20 at 06:50
- 
                    You can try it yourself, then see the result: var value = '\\t'; var removed = value.replace('\\\\', '\\'); – linmu Mar 30 '20 at 07:07
- 
                    
- 
                    Or you share source code for us to have better understanding for your condition? – Lim Wen Rong Mar 31 '20 at 08:03
 
    