Javascript 以http://开头并包含~

Javascript 以http://开头并包含~,javascript,regex,validation,Javascript,Regex,Validation,我试图用javascript中的正则表达式验证一个字符串,用户将该字符串输入到一个中,该字符串以http://开头,并在该字符串中的某个位置包含一个~。 我所拥有的是 (/^(http?:\/\/)\~/.test(string)) 但它不太管用 任何提示?无需或正则表达式,您可以使用和 由于并非所有浏览器都支持这些方法,您可以将MDN中的polyfills用于较旧的浏览器。正则表达式解决方案如下所示: (/^https?:\/\/.*\~/.test(string)) 您的正则表达式几乎是正

我试图用javascript中的正则表达式验证一个字符串,用户将该字符串输入到一个
中,该字符串以
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))