如果 HTML 标记仅存在于字符串的开头,则返回 false

Return false if HTML Tags exist only at the beginning of a string

本文关键字:开头 false 返回 字符串 HTML 存在 如果      更新时间:2023-09-26

如果 html 标签只存在于字符串的开头,我想返回 false。否则,如果它们存在于字符串中,则返回 true。到目前为止,我能做的是,如果 html 标签在开头,则返回 false,但如果它在字符串内,则 html 标签之后的所有内容都将被删除。如果标签前的文本长度为 true,则只保留 html 标签之前的文本,否则返回 false

例子:

  • Tha</bo应该返回Tha bo,只去除标签而不是标签后的所有内容
  • </Thabo应返回一个模式,其中包含无效信息的消息

function invalidInfo() {
	var returnVal = true;
	var valProjCode = window.document.getElementById("txtProjCode").value.replace(/<'/?[^>]+(>|$)/g, "");
	
	valDestination = window.document.getElementById("txtDestination").value.replace(/<'/?[^>]+(>|$)/g, "");
	if (valDestination.trim().length < 2 || valProjCode.trim().replace(/ /g, '').length < 5) {
	    returnVal = false;
		try {
		    $("#InvalidInfoModal").modal();
		    $('#InvalidCusInfoModal').modal('hide')
		    $('#MissingDateModal').modal('hide')
		    $('#InvalidDateModal').modal('hide')
		    $('#InvalidChars').modal('hide')
		}
		catch(err) {
			alert(err.message);
		}
	}
	return returnVal;
}

您可以使用正则表达式来确定字符串是否以特定模式开头。尝试JavaScript正则表达式test()方法。你可以从这里找到参考

以 html 标记开头的匹配字符串的正则表达式是/^<([^>]+)>/ig

例:

var regex = /^<([^>]+)>/ig;
regex.test("abc<html>"); //return false
regex.test("<html>abc"); //return true
regex.test("abcd"); //return false