我在正則表達式中遇到了一些麻煩。使用.match和正則表達式不起作用獲取特定單詞
我想匹配句子中的正則表達式。
例子:
John has two candy ::123::
,我使用此代碼來尋找它:
var getid = x$('div').html().match(/::([^:]+)::/g);
要獲得123句我們。
那麼我的問題在這裏? 我一直在爲getid var獲取未定義的值。
我在正則表達式中遇到了一些麻煩。使用.match和正則表達式不起作用獲取特定單詞
我想匹配句子中的正則表達式。
例子:
John has two candy ::123::
,我使用此代碼來尋找它:
var getid = x$('div').html().match(/::([^:]+)::/g);
要獲得123句我們。
那麼我的問題在這裏? 我一直在爲getid var獲取未定義的值。
問題是g
標誌。您不要將它與String#match
一起使用。刪除它,它工作正常(live copy | source):
var getid = x$('div').html().match(/::([^:]+)::/);
if (getid) {
display("Found: " + getid[1]);
}
else {
display("Not found");
}
如果你想找到所有匹配的文本,使用RegExp#exec
和環(和g
標誌)(live copy | source):
var rex = /::([^:]+)::/g;
var str = x$('div').html();
var getid;
while (getid = rex.exec(str)) {
display("Found: " + getid[1]);
}
(爲了更清楚,你可以使用
while ((getid = rex.exec(str)) != null) {
...因爲在TE具有分配st看起來像=
而不是==
錯字;但它涉及到比其他可讀性同樣的事情。)
回覆您的評論如下詢問x$(this)
,它應該有任何區別。以上是返回使用的上述示例:x$(this)
:
是啊x $是別名。但它的價值不明確。 – sm21guy 2012-03-25 13:11:04
你在頁面中只有div嗎?通過id訪問元素可能是一個好主意。 – 2012-03-25 13:12:10
我正在使用(this).html();因爲它上面是div ID。點擊功能。 – sm21guy 2012-03-25 13:13:56