0
A
回答
1
如果您想让报价变得十分简单,知道如何使报价走向(左侧或右侧)并不容易。如果它不是那么重要的是要完全理解这一点的时候,你可以使用正则表达式夫妇的:
function curlyQuotes(inp) {
return inp.replace(/(\b)'/, "$1’")
.replace(/'(\b)/, "‘$1")
.replace(/(\b)"/, "$1”")
.replace(/"(\b)/, "“$1")
}
curlyQuotes("'He said that he was \"busy\"', said O'reilly")
// ‘He said that he was “busy”', said O’reilly
你会看到第二个“不正常变化。
1
的困难的部分是识别撇号,这将混淆单引号的数量。
对于双引号,我认为可以安全地找到它们,用左曲线替换奇数曲线,用右曲线替换偶数曲线。除非你有嵌套报价的情况。
来源是什么?英文文本?码?
0
我最近写了一个排版美容引擎jsPrettify就是这么做的。以下是我使用的算法(原始here)的报价单版本:
prettifyStr = function(text) {
var e = {
lsquo: '\u2018',
rsquo: '\u2019',
ldquo: '\u201c',
rdquo: '\u201d',
};
var subs = [
{pattern: "(^|[\\s\"])'", replace: '$1' + e.lsquo},
{pattern: '(^|[\\s-])"', replace: '$1' + e.ldquo},
{pattern: "'($|[\\s\"])?", replace: e.rsquo + '$1'},
{pattern: '"($|[\\s.,;:?!])', replace: e.rdquo + '$1'}
];
for (var i = 0; i < subs.length; i++) {
var sub = subs[i];
var pattern = new RegExp(sub.pattern, 'g');
text = text.replace(pattern, sub.replace);
};
return text;
};
相关问题
- 1. 替换Javascript中的脱字符号
- 2. 替换·符号
- 3. 替换&符号
- 4. 替换JavaScript中的所有加号符号字符串
- 5. 替换Javascript中的引号?
- 6. javascript替换问号
- 7. 用Javascript字符串替换尖括号?
- 8. 用jquery替换数字和符号/ javascript
- 9. Matlab中的符号替换
- 10. 如何使用JavaScript字符串替换方法替换“+”号?
- 11. 如何在Javascript中替换字符串中的撇号?
- 12. MATLAB符号替换
- 13. 的Javascript替换全球不工作插入符号符号
- 14. 如何在javascript字符串中替换圆括号标记
- 15. 字符串替换在JavaScript
- 16. javascript替换()函数从字符串中选择符号
- 17. 使用替换方法在C#中替换为\“符号
- 18. 的Javascript替换为等号
- 19. 替换PostgreSQL中的符号字符
- 20. 在javascript数组中替换字符串
- 21. 在Javascript中查找和替换字符
- 22. 字符串替换在Javascript中
- 23. 。替换为Javascript替换多个字符
- 24. 使用替换的Javascript替换字符()
- 25. 如何用一个单一符号替换JavaScript中的任意符号组?
- 26. javascript替换双引号单引号
- 27. 在JavaScript换行符替换不工作:(
- 28. 如何替换JavaScript中的加号?
- 29. 用jQuery替换符号
- 30. 替换表情符号
您是不是指那些需要在自己的产品线上的每个产品? – Nosredna 2009-06-10 01:41:06