我有一个字符串TMP是如下特殊字符#在一个字符串
<a href="#" class="quickLinks" id="linkQL">Quick Links</a>
我希望能够知道有HREF后#= ..我觉得做这样的如果(tmp.indexOf(“#”)== 8),但我不能,我认为它是因为#是一个特殊字符
我有一个字符串TMP是如下特殊字符#在一个字符串
<a href="#" class="quickLinks" id="linkQL">Quick Links</a>
我希望能够知道有HREF后#= ..我觉得做这样的如果(tmp.indexOf(“#”)== 8),但我不能,我认为它是因为#是一个特殊字符
var tmp = '<a href="#" class="quickLinks" id="linkQL">Quick Links</a>';
tmp.indexOf('#');
这是返回9,这是预期的结果。
这个问题被标记为[[java]',这对我来说看起来并不像是有效的Java ... – NPE 2013-03-07 08:07:41
+1但是一个非常明确的答案。 – 2013-03-07 08:14:34
为了测试是否#如下HREF,您可以简单地这样:
if (input.contains("href=\"#\""))
没有必要让正则表达式和哈希字符#不是Java的特别,但双引号字符需要转义。
单引号是有效的html,或者至少受浏览器支持。我想这取决于html来自于你对它的外观有多自信。 – theon 2013-03-07 08:49:10
尝试正则表达式
boolean matches = s.matches(".+href\\s*=\\s*['\"]#['\"].+");
这听起来像是一个正则表达式的匹配。顺便说一下,Java字符串中的'#'没有什么特别之处。 – NPE 2013-03-07 07:55:43
你是什么意思“我无法”? tmp.indexOf('#')应该返回9. – longhua 2013-03-07 07:56:44
如果你真的想要检查字符串'#'是否在'href'字符串后面(例如在href之后的'id'属性中),那么你可以使用正则表达式。如果你想检查'#'是否在'href'属性中,那么你应该使用一个html解析器。 – theon 2013-03-07 08:06:48