第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么這個(gè)javascript regex不能工作?

為什么這個(gè)javascript regex不能工作?

為什么這個(gè)javascript regex不能工作?我正在做一個(gè)小的javascript方法,它接收一個(gè)點(diǎn)的列表,我必須讀取這些點(diǎn)來(lái)在Google地圖中創(chuàng)建一個(gè)多邊形。我收到表格上的以下要點(diǎn):(lat,long),(lat,long)因此,我做了以下正則表達(dá)式:\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)我用雷吉帕爾我收到的確切數(shù)據(jù)是:(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)它是有效的,那么為什么當(dāng)我在javascript中有這段代碼時(shí),我會(huì)在結(jié)果中得到NULL呢?var polygons="(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737),(25.774252, -80.190262)"; var reg = new RegExp("/\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g");var result = polygons.match(reg);我在執(zhí)行時(shí)沒(méi)有javascript錯(cuò)誤(使用GoogleChrome的調(diào)試模式)。此代碼托管在javascript函數(shù)中,該函數(shù)位于包含的JS文件中。在onload方法中調(diào)用此方法。我找了很多次了,但我找不到為什么這不管用。非常感謝!
查看完整描述

2 回答

?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

regex文字[MDN]:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;

當(dāng)您使用RegExp [MDN]:

  • “定界符”

    /

    不應(yīng)該是表達(dá)式的一部分。
  • 如果將表達(dá)式定義為字符串,則必須轉(zhuǎn)義反斜杠,因?yàn)樗亲址械霓D(zhuǎn)義字符。

此外,修飾符作為函數(shù)的第二個(gè)參數(shù)傳遞。

所以如果你想用RegExp(在本例中,您不必這樣做),相應(yīng)的內(nèi)容是:

var reg = new RegExp("\\(\\s*([0-9.-]+)\\s*,\\s([0-9.-]+)\\s*\\)", "g");

(我想你現(xiàn)在明白為什么regex文字更方便了)


我總是覺(jué)得復(fù)制和過(guò)去RegExp表達(dá)式,并查看其輸出。以你原來(lái)的表情,我們得到:

/(s*([0-9.-]+)s*,s([0-9.-]+)s*)/g

這意味著表達(dá)式試圖匹配/sg字面上和父母()仍被視為特殊人物。


最新情況: .match()返回一個(gè)數(shù)組:

["(25.774252, -80.190262)", "(18.466465, -66.118292)", ... ]

這似乎不太有用。

你必須用.exec() [MDN]提取數(shù)字:

["(25.774252, -80.190262)", "25.774252", "-80.190262"]

這必須反復(fù)調(diào)用,直到處理完整個(gè)字符串為止。

例子:

var reg = /\(\s*([0-9.-]+)\s*,\s([0-9.-]+)\s*\)/g;var result, points = [];while((result = reg.exec(polygons)) !== null) {
    points.push([+result[1], +result[2]]);}

這將創(chuàng)建一個(gè)數(shù)組和一元加號(hào)(+)將字符串轉(zhuǎn)換為數(shù)字:

[
    [25.774252, -80.190262], 
    [18.466465, -66.118292], 
    ...]

當(dāng)然,如果您希望將值作為字符串而不是數(shù)字,則只需省略+.


查看完整回答
反對(duì) 回復(fù) 2019-06-25
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

雖然這是一個(gè)很老的答案,但它確實(shí)幫助我完成了我的表單驗(yàn)證。額外的“\”在“\”?!霸诮Y(jié)束時(shí)這樣做:) 

查看完整回答
反對(duì) 回復(fù) 2019-06-25
  • 2 回答
  • 0 關(guān)注
  • 543 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)