Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RegExp—;治疗'\n';字符串作为换行符_Javascript_Regex_String - Fatal编程技术网

Javascript RegExp—;治疗'\n';字符串作为换行符

Javascript RegExp—;治疗'\n';字符串作为换行符,javascript,regex,string,Javascript,Regex,String,我有一个函数,允许用户指定正则表达式替换 它们提供了目标字符串和替换字符串。但是,当前如果它们提供\n、\t等作为替换,则会将其视为字符串文字而不是特殊字符 因此,简言之,鉴于: regex = new RegExp('\t','g'); replacement = '\n'; new_phrase = original_phrase.replace(regex, replacement); 目前,这不会插入实际的换行符/制表符 如何正确地将\t和\n视为它们的特殊字符而不是字符串文字?'\

我有一个函数,允许用户指定正则表达式替换

它们提供了目标字符串和替换字符串。但是,当前如果它们提供\n、\t等作为替换,则会将其视为字符串文字而不是特殊字符

因此,简言之,鉴于:

regex = new RegExp('\t','g');
replacement = '\n';

new_phrase = original_phrase.replace(regex, replacement);
目前,这不会插入实际的换行符/制表符


如何正确地将\t和\n视为它们的特殊字符而不是字符串文字?

'\\t'
'\\n'
。逃出反斜杠@易卜拉欣·赫里尔:我认为这里的情况并非如此。我认为用户使用的输入看起来像是转义的,而不是新行。“目前这不会替换/插入实际的新行/制表符。”-是的,会的。你试过了吗?@epascarello情况正是如此:用户在输入中键入
\n
,因此它是两个字符(a\和n)。因此,如果他需要替换它,他必须使用
\\n
而不是
\n
,因为前者代表两个字符,后者代表一个!添加类似于
var dct={'\\n':'\n','\\r':'\r','\\t':'\t'}的内容;replacement=replacement.replacement(/\\([tnr])/g,函数($0){返回dct[$0];})