Javascript RegExp—;治疗'\n';字符串作为换行符
我有一个函数,允许用户指定正则表达式替换 它们提供了目标字符串和替换字符串。但是,当前如果它们提供\n、\t等作为替换,则会将其视为字符串文字而不是特殊字符 因此,简言之,鉴于: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视为它们的特殊字符而不是字符串文字?'\
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];})代码>。