【问题标题】:Comparing whether a unicode equals something [closed]比较 unicode 是否等于某物[关闭]
【发布时间】:2015-09-28 07:06:39
【问题描述】:

我想在我的代码中添加一些逻辑,如下所示:

var X = $('span').text()
$('body').append(X)

if (X == '▼') {
  $('body').append('Yay!')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>&#9660;</span>

但是,正如您从上面的 sn-p 中看到的那样,“耶!”不附加到正文中。那么如何检查 unicode 字符是否等于转义序列?

【问题讨论】:

  • 还有,问题是什么?...一切似乎都正常...
  • 问题是? jsfiddle.net/dhyu891w
  • 您已将我的 == 更改为 !== 这就是它返回真值的原因。

标签: javascript unicode


【解决方案1】:

您可以使用String.fromCharCode() 使用十进制数字创建字符,以便它与您正在使用的 HTML 实体匹配。或者只是将字符复制到字符串文字中并直接比较。这可能会更清楚,也可能不取决于您的情况。

var X = $('span').text()
$('body').append(X)


if (X == String.fromCharCode(9660)) {
  $('body').append('Yay!')
}

if (X == "▼") {
  $('body').append('Yay!')
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>&#9660;</span>

【讨论】:

  • 我现在可以停止哭泣了。
  • 我刚刚更新了。您还可以通过将浏览器中的字符复制/粘贴到 JS 字符串中来简单地使用字符串文字。
  • 三等号也可以。
【解决方案2】:

使用 charCodeAt(0) 并省略字符串中的 '':

if ( X.charCodeAt(0) == 9660 ) {
  $('body').append('Yay!');
}

【讨论】:

    【解决方案3】:

    在 javascript 中,您可以使用 \u 后跟 hexidecimal 表示 unicode 值来转义 unicode 字符。请参阅this 了解您的角色转换。在页面底部附近,它给出了与 JavaScript 相同的字符的 Java 转义码。

    var X = $('span').text()
    $('body').append(X)
    if (X == '\u25bc') {
      $('body').append('Yay!')
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <span>&#9660;</span>

    【讨论】:

    • 谢谢塞缪尔!我更喜欢 String.fromCharCode 解决方案,但您的解决方案肯定有效。
    • 我也更喜欢那个解决方案
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2016-12-13
    • 2020-09-28
    相关资源
    最近更新 更多