当字符串以“ <”字符开头时,jQuery正则表达式不匹配

时间:2019-08-26 19:59:45

标签: javascript jquery regex

我正在尝试查看字符串的开头是否具有“ <”字符,但是它将不起作用。它在regex101.com中工作正常,但在个人文件中尝试时效果不佳。

键入backslash,它可以正常工作,键入<,它将不起作用。

$(function() {

  $(document).on('keyup', '.input', function() {
    var str = $(this).html();

    // not working
    if (str.match(/^</)) {
      console.log('starts with "<" character');
    }

    // but this works??
    if (str.match(/^\\/)) {
      console.log('starts with backslash');
    }


  });

});
.input {
  border: 1px solid #ccc;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="input" contenteditable></div>

1 个答案:

答案 0 :(得分:2)

JavaScript可能会将<符号编码为&lt;。尝试做console.log(str);来看看是否正在发生(我在浏览器中尝试过的情况)。

在这种情况下,请在模式中将<替换为&lt;,如下所示:

    if (str.match(/^&lt;/)) {
        console.log('starts with "<" character');
    }