我正在尝试使用正则表达式来读取用户键入的消息,查找关键字并对它们进行计数。
我遇到的问题是,如果没有匹配项,我会收到此错误:Uncaught TypeError: Cannot read property 'length' of null
如果存在匹配项,我不会收到该错误,但它会计算输入短语的次数。
function readMessage() {
var newtext = $("#myText").val()
var newMessage = document.createElement("div");
newMessage.setAttribute("id", "Divjuan");
var messageText = document.createTextNode(newtext);
console.log(messageText)
newMessage.appendChild(messageText);
var currentDiv = document.getElementById("div1");
currentDiv.insertBefore(newMessage, currentDiv.childNode);
var source1 = newtext;
console.log(source1)
var exampletcount1 = source1.match(/example1/g).length;
console.log(exampletcount1)
var exampletcount2 = source1.match(/example2/g).length;
console.log(exampletcount2)
}
任何帮助都会很棒
最佳答案
在尝试访问其长度之前检查匹配是否为空:
var examplematch1 = source1.match(/example1/g);
var exampletcount1 = examplematch1 ? examplematch1.length : 0;
console.log(exampletcount1);
关于javascript - 如果没有匹配项,正则表达式返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52594035/