5 javascript jquery html5 utf-8
我正在开发一个打开的jquery库jspdf
.上面的库不支持UTF-8字符.有没有办法让我可以使用正则表达式或任何其他方法删除我的html字符串中的所有引号UTF-8字符.
PSEDO CODE:
$(htmlstring).replace("utf-8 quotes character" , "")
Run Code Online (Sandbox Code Playgroud)
首先:如果它不支持Unicode,我建议你停止使用jsPDF.这是2014年中期,缺乏支持应该意味着两年前该项目的死亡.但这只是我的个人信念,而不是你正在寻找的答案的一部分.
如果jsPDF仅支持ANSI(255个字符块,而不是ASCII的127个字符块),那么您可以简单地对\ xFF以上的所有内容进行正则表达式替换:
"lol???".replace(/[\u0100-\uFFFF]/g,'');
// gives us "lol"
Run Code Online (Sandbox Code Playgroud)
如果你只想摆脱引号(但留下潜在的jsPDF打破unicode),你可以根据它们在unicode map中的位置使用"just quotation marks"模式:
string.replace(/[\u2018-\u201F\u275B-\u275E]/g, '')
Run Code Online (Sandbox Code Playgroud)
会抓住['‘','’','‚','?','“','”','„','?','?','?','?','?']
,虽然当然你可能想做的是用相应的安全角色替换它们.好消息:只需为刚刚出现的列表创建一个替换数组,并使用它.
2017编辑:
ES6以模式的形式为unicode字符串引入了一个新模式\u{...}
,它可以在花括号内部执行"任意数量的hexdigits",因此完整的Unicode 9兼容regexp现在将是:
// we can't use these in a regexp directly, unfortunately
a = '\u{100}';
b = '\u{10FFF0}';
re = new RegExp(`[${a}-${b}]`,'g');
c = "lol???".replace(re, '');
Run Code Online (Sandbox Code Playgroud)
使用
$(htmlstring).replace(/[^\x00-\x7F]/g,'')
Run Code Online (Sandbox Code Playgroud)
删除所有非 ASCII 字符
归档时间: |
|
查看次数: |
9412 次 |
最近记录: |