【问题标题】:Need to escape " , ' along with other UNICODE characters需要转义 " , ' 以及其他 UNICODE 字符
【发布时间】:2015-07-17 11:26:57
【问题描述】:

我有以下字符串:

"ѯѰѱѲ & <b>BOLD</b> <>?:"{}|+_)(*&^%\\\\\\$#@!~`,./;'[]\

(开头的“和中间的”)。

我尝试了以下 3 个函数:escape、encodeURI 和 encodeURIComponents。

但是,这三个都给出了错误:SyntaxError: Unexpected token { 显然是由于存在“以中间关闭”开头。

我不想使用正则表达式替换来转义字符串中的“和”。是否有任何直接的 JS/jQuery 函数可以做同样的事情?

CODE:
Was earlier doing this : e.title.toLowerCase().indexOf(encodeURIComponent($scope.nameToSearch.toLowerCase()))

【问题讨论】:

  • 不,我的意思是一个可以自己完成的功能?
  • 就像我不必手动转义.. 写一个正则表达式,因为我可能会错过一些东西或者它会与其他东西发生冲突
  • 您必须展示更多代码。这些内容来自哪里?听起来,任何生成该内容的东西都应该转义。
  • 我从 ngualr.js 的 ng-model 中获取字符串
  • 或者我也可以对其进行硬编码。这有什么关系?我的问题是,是否有直接的方法可以做到这一点.. 为什么来源很重要?

标签: javascript jquery regex unicode


【解决方案1】:

或者我也可以硬编码

对于硬编码版本,只需将其放在引号中,并为引号和反斜杠进行转义:

// Quotes v                                                                 v
var str = '"ѯѰѱѲ & <b>BOLD</b> <>?:"{}|+_)(*&^%\\\\\\\\\\\\$#@!~`,./;\'[]\\';
// Escapes -------------------------------------^-^-^-^-^-^-----------^---^

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 2017-06-15
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    相关资源
    最近更新 更多