Javascript 以http://开头并包含~
我试图用javascript中的正则表达式验证一个字符串,用户将该字符串输入到一个Javascript 以http://开头并包含~,javascript,regex,validation,Javascript,Regex,Validation,我试图用javascript中的正则表达式验证一个字符串,用户将该字符串输入到一个中,该字符串以http://开头,并在该字符串中的某个位置包含一个~。 我所拥有的是 (/^(http?:\/\/)\~/.test(string)) 但它不太管用 任何提示?无需或正则表达式,您可以使用和 由于并非所有浏览器都支持这些方法,您可以将MDN中的polyfills用于较旧的浏览器。正则表达式解决方案如下所示: (/^https?:\/\/.*\~/.test(string)) 您的正则表达式几乎是正
中,该字符串以http://
开头,并在该字符串中的某个位置包含一个~
。
我所拥有的是
(/^(http?:\/\/)\~/.test(string))
但它不太管用
任何提示?无需或正则表达式,您可以使用和
由于并非所有浏览器都支持这些方法,您可以将MDN中的polyfills用于较旧的浏览器。正则表达式解决方案如下所示:
(/^https?:\/\/.*\~/.test(string))
您的正则表达式几乎是正确的,只是缺少了检查http://
部分后面字符的*
我还将
s?
放在那里,以防https
有效我认为您的正则表达式应该修复为:
(/^(http?:\/\/).*\~/.test(string))
If(str.indexOf('http://')==0&&str.indexOf('~')>0)
???@adeneo谢谢你的帮助!你能解释一下indexOf是如何工作的吗?==和==之间有什么区别?@Enigma它给出了给定字符串中子字符串的起始索引。。提供字符串中字符串的索引。如果该索引为0
,则该字符串以该字符串开头。如果大于0
则包含字符串,如果-1
则不包含字符串。实际上为什么要转义~
?老实说,我之所以包含转义,是因为OP转义了它。我想这在JS中可能很特别。疼吗?当我测试它时,我知道它在控制台中工作。酷,那也工作得很好!有多种方法可以解决这个问题,这很简单。
(/^(http?:\/\/).*\~/.test(string))