我有一個字符串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