【问题标题】:Return false if HTML Tags exist only at the beginning of a string如果 HTML 标签仅存在于字符串的开头,则返回 false
【发布时间】:2016-02-18 08:50:06
【问题描述】:

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

【问题讨论】:

  • 请添加一些示例字符串以及结果应该是什么。
  • With Tag Inside: Tha== Tha 和 With Tag at the beginning == 将返回带有无效信息消息的模态
  • 我已将示例添加到您的问题中。将来,请始终为不同的结果提供示例,并将它们直接写入问题文本中。
  • 另外:你的标签示例是用于结束标签的,我猜像Tha&lt;/bo 这样的开始标签应该被同样对待?
  • 如果字符串中有一个 HTML 标签,那么只有那个标签应该被去掉,可能被一个空格替换,只有这个标签,而不是标签后面的所有东西,这就是现在发生的事情.所以 Tha应该返回 Thabo/Tha bo 而不是 Tha。见编辑。并感谢提示

标签: javascript html asp.net tags


【解决方案1】:

您可以使用正则表达式来确定字符串是否以特定模式开头。尝试 javascript 正则表达式 test() 方法。可以参考here

匹配以html标签开头的字符串的正则表达式为/^&lt;([^&gt;]+)&gt;/ig

例子:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2019-05-23
    • 2023-01-26
    相关资源
    最近更新 更多