我正在使用正则表达式从从 telnet 客户端 (node.js) 输入的字符串中删除按键
但是我的正则表达式 input.replace(/\[(B|C|D|A)/gm,"");
似乎有一些奇怪的效果
string
作为我的输入是那个快照。
如何删除正则表达式放在开头的那些空字符串,或者是否有更好的方法来编写表达式以便不创建它们?
这是输入字符串 http://s21.postimg.org/91e01id13/input.png 作为一个字符串
"[D[A[C[D[B[D[A[B[C[Dhhh
"
按两次左箭头键并输入 hello
看起来像这样 "%1B%5BD%1B%5BDhello%0D%0A"
在 encodeURIComponent(string );
最佳答案
使用 JavaScript 的 String.trim()
方法,删除开头和结尾的空格。
string.trim();
将 JavaScript 的 String.replace()
方法与 Regex 结合使用,如下所示:
string.replace(/\s/g,"");
而且,作为最后的替代方案,您可以去掉这 3 个空格。 (虽然这听起来不是一个好的选择,但如果开头的空值不同的话)
string.substring(0,2);
最后,如果你真的觉得很疯狂,你可以尝试所有 3 个。
string.substring(0,2).replace(/\S\s/g,"").trim();
重现字符串后(换行):
"[D[A[C[D[B[D[A[B[C[Dhhh\u000A"
我在字符串上试过你的正则表达式:
"[D[A[C[D[B[D[A[B[C[Dhhh\u000A".replace(/\[(B|C|D|A)/gm,"");
它按预期返回 "hhh"
(带换行)...
当我们把它扔进一个对象时:
Object("[D[A[C[D[B[D[A[B[C[Dhhh\u000A".replace(/\[(B|C|D|A)/gm,""));
我得到了这个返回(在 Chrome 的开发控制台 和 Firefox 的控制台):
String {0: "h", 1: "h", 2: "h", 3: "↵", length: 4, [[PrimitiveValue]]: "hhh↵"}
所以,我对这个问题是如何产生的还是有点困惑?我只能说尝试上述解决方案。
关于javascript - 从javascript字符串中删除空字符串字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200212/