JavaScript将问题替换为“;垂直条”;
JavaScript replace issue with "vertical bar"
我有以下代码,用正确的字符替换Microsoft Word中的文本。
message = message.replace(/['u2018|'u2019|'u201A]/g, "''"); // smart single quotes and apostrophe
message = message.replace(/['u201C|'u201D|'u201E]/g, "'""); // smart double quotes
message = message.replace(/'u2026/g, "..."); // ellipsis
message = message.replace(/['u2013|'u2014]/g, "-"); // dashes
message = message.replace(/'u02C6/g, "^"); // circumflex
message = message.replace(/'u2039/g, ""); // open angle bracket
message = message.replace(/['u02DC|'u00A0]/g, " "); // spaces
问题是,它用撇号替换了竖线,例如:|
。
我猜这是因为我在替换代码message.replace(/['u201C|'u201D|'u201E]/g, "'"")
中有|
。我以为它像OR
,但显然不是。
你知道我如何改进这个代码,使|
不被替换吗?
您正在将'u
字符放入[ ]
字符类/组中。这已经对包含的字符执行了隐式"或"运算。在字符类之外,|
是OR,但在它内部是一个文字|
。
移除|
应该有效:
message.replace(/['u201C'u201D'u201E]/g, "'"")
或者,您可以将它们从字符类中取出,并保留|
:
message.replace(/'u201C|'u201D|'u201E/g, "'"")
您可以决定它看起来更干净/更容易阅读(如果可以这样说任何正则表达式的话)。如果您想进行其他类型的匹配,这两种方法之间存在差异,但就您的目的而言,它们在功能上是等效的。
在字符类中不需要替换(用|
字符表示):
message = message.replace(/['u2018'u2019'u201A]/g, "''"); // smart single quotes and apostrophe
message = message.replace(/['u201C'u201D'u201E]/g, "'""); // smart double quotes
message = message.replace(/'u2026/g, "..."); // ellipsis
message = message.replace(/['u2013'u2014]/g, "-"); // dashes
message = message.replace(/'u02C6/g, "^"); // circumflex
message = message.replace(/'u2039/g, ""); // open angle bracket
message = message.replace(/['u02DC'u00A0]/g, " "); // spaces
或者使用简单的替代字符类:
message = message.replace(/'u2018|'u2019|'u201A/g, "''"); // smart single quotes and apostrophe
message = message.replace(/'u201C|'u201D|'u201E/g, "'""); // smart double quotes
message = message.replace(/'u2026/g, "..."); // ellipsis
message = message.replace(/'u2013|'u2014/g, "-"); // dashes
message = message.replace(/'u02C6/g, "^"); // circumflex
message = message.replace(/'u2039/g, ""); // open angle bracket
message = message.replace(/'u02DC|'u00A0/g, " "); // spaces
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- JavaScript将问题替换为“;垂直条”;
- 数据表垂直滚动问题
- 冻结列垂直滚动问题
- 垂直手风琴菜单溢出问题
- 将 jQuery 和 CSS3 滚动效果从功能垂直滚动转换为所需水平滚动的问题
- JQPlot渲染垂直堆叠条形图和水平图例时出现问题
- CKEditor自动增长插件垂直滚动条闪烁问题
- CSS中的垂直菜单定位问题
- 灯箱问题和垂直对齐
- Extjs 5:标签栏垂直增长的问题作为一个小部件列
- Jquery localscroll关于垂直和水平滚动的问题
- Fullpage.js垂直对齐问题
- 垂直Flexslider部分幻灯片显示问题
- iScroll问题与二维(水平+垂直)滚动,可滚动是相关的问题
- 超链接和片段ID垂直偏移问题
- 垂直和水平中心以及javascript滚动的问题
- 滑动器(高度问题-多个滑动器-垂直方向)