相关疑难解决方法(0)

如何在Javascript中执行shell命令

我想编写一个JavaScript函数,它将执行系统shell命令(ls例如)并返回值.

我该如何实现这一目标?

javascript

108
推荐指数
9
解决办法
36万
查看次数

将直引号转换为引号的想法

我有一个包含"直"(普通,ASCII)引号的文件,我正在尝试将它们转换为真正的引号字形("卷曲"引号,U + 2018到U + 201D).由于从两个不同的引号字符转换为单个字符首先是有损的,显然没有办法自动执行这种转换; 尽管如此,我怀疑一些启发式方法将涵盖大多数情况.因此,该计划是一个脚本(在Emacs中),它执行以下操作:对于每个直引号字符,

  1. 如果可能的话,猜猜要使用哪个卷曲引号字符
  2. 要求用户(我)确认或做出选择

这个问题是关于第一步:对于普通的英文文本(例如小说),使用什么是一个好的算法(一组启发式,更像是)?以下是一些初步的想法,我认为这些想法适用于双引号(欢迎反例!):

  1. 如果双引号位于一行的开头,则猜测它是一个开头报价.
  2. 如果双引号位于一行的末尾,则猜一个结束报价.
  3. 如果双引号前面有空格,请猜一个开头报价.
  4. 如果双引号后面跟一个空格,请猜一个收盘价.
  5. 如果双引号不符合上述类别之一,则猜测它是最近使用的双引号的"反面".

单引号比较复杂,因为a '可能是开头引号,结束引号撇号,我们想要单独留下撇号(不能写"绝对不能").一些与上述相同的规则适用,但'可能的撇号是在单词(或行)的开头,尽管它不像过去的'twas那样常见.我不能随便想到能够正确处理像["我喜欢'那'70年代表演''这样片段的规则,"她说.它可能需要查看不仅仅是相邻字符,并计算引号之间的距离,例如......

还有什么想法吗?如果不是所有可能的案件都包括在内,那也没关系; 我们的目标是尽可能聪明,但不能再进一步.:-)

编辑:可能值得考虑的更多事情(或者可能是不相关的,不确定):

  • 引号可能并不总是匹配对:对于单引号,显而易见的原因如上所述.但即使对于双引号,如果有一个引用延伸多个段落,通常的排版约定(不要问我为什么)是用引号开始每个段落,即使它在之前没有被关闭一.所以,简单地保持状态机两种状态会之间交替工作!
  • 嵌套引用(在上面的"我喜欢'那个'70年代展示''例子中提到):这可能使得任何一种引用都不会在空格之前或之后.
  • 英/美标点符号样式:引号内或外引号?
  • 许多文字处理器(例如Microsoft Word)已经像这样进行某种转换.虽然它们并不完美并且经常令人讨厌,但了解它们如何工作可能是有益的...

language-agnostic algorithm typography

13
推荐指数
1
解决办法
2926
查看次数

字符串替换双引号括号括起来

如何将所有Double引号替换为打开和关闭大括号.

let str = "This" is my "new" key "string";
Run Code Online (Sandbox Code Playgroud)

我试过这个正则表达式

str.replace(/"/,'{').replace(/"/,'}')
Run Code Online (Sandbox Code Playgroud)

但我最终得到了这个:

{This} is my "new" key "string"
Run Code Online (Sandbox Code Playgroud)

这里只有第一个字正在改变,但我想改变所有的话.我希望结果如下:

{This} is my {new} key {string}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

javascript regex string replace ecmascript-6

6
推荐指数
1
解决办法
459
查看次数