【发布时间】:2019-08-26 19:59:45
【问题描述】:
我正在尝试查看字符串的开头是否有“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>
【问题讨论】:
-
您的代码应该可以工作(即使没有反斜杠)。 HTML 元素在标签开始之前是否有换行符或空格?这会使
(str.match(/^</))失败。 -
'<foo'.match(/^</)有效,所以我猜还有别的东西。调试字符串console.log(escape(str)) -
如果您改为测试
innerHTML属性是否有效? -
&lt;字符被替换为&lt;
标签: javascript jquery regex