作者gn00618777 (非常念舊)
看板Web_Design
標題Re: [問題] javascript 字串處理
時間Sun Jan 18 22:44:04 2015
※ 引述《gn00618777 (非常念舊)》之銘言:
: 版友好
: string1="test1"
: string1.match("test") 回傳 test,因為test1包含test
: 可是我的用意是希望她回傳 null,因為我搜尋是要搜尋 test 而已非 test1
: 而這類的問題,linux 的 shell 可以用 ^(字首)$(字尾)來解決,請問js
: 要怎麼解決呢? 謝謝。
HI 我問題還是沒解決...
var st="test1 test";
alert(st.match(/\b"test"\b/)) ---> null
alert(st.match(/\btest\b/)) ---> test (成功)
問題來了,裡面似乎是要 test 而不是 "test",但我程式裡的test就是一個"字串"
變數,所以得到的變數值自然就會帶""雙引號,這樣加入//b 變數 /b/就會失敗..
謝謝 >"<
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.66.230
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1421592248.A.E63.html
※ 編輯: gn00618777 (118.169.66.230), 01/18/2015 22:54:03
1F:推 LPH66: 不要加引號, 那會被當成 regexp 的一部份 01/18 22:51
2F:→ LPH66: 我的推文裡也沒有引號就是這樣 01/18 22:52
3F:→ LPH66: javascript 的 regexp 物件是由 / / 分隔的 01/18 22:52
4F:推 LPH66: 一個"字串"變數? 有簡單的程式嗎? 01/18 23:06
5F:→ gn00618777: 我有一個 text,假設輸入 123,這個123字串,我會放至 01/18 23:07
6F:推 LPH66: 啊, 我看懂你的問題了...這樣的話, 顯式建立 regexp 物件 01/18 23:13
7F:→ LPH66: st.match(new RegExp("\\b"+stringvar+"\\b")) 01/18 23:14
8F:→ LPH66: 這樣建立 regexp 物件時就不用 / / 了, 但是因為是給字串 01/18 23:14
9F:→ LPH66: 所以 \ 要寫兩次 01/18 23:14
10F:→ LPH66: 也因為給字串所以就能夠放變數進去了 01/18 23:15
11F:→ gn00618777: = =d ,L大真強..我剛打好範例的說 ,我先試看看 01/18 23:25
12F:→ gn00618777: 她成功了..只是我不懂L大說的..RegExp,我會再研究 01/18 23:33
13F:→ gn00618777: 謝謝。 01/18 23:33
14F:推 rarex: RegExp就是正規表示法的物件 可以讓你用變數拼湊你的正規式 01/18 23:55
15F:→ rarex: /test/就等同於new RegExp('test')這樣 01/18 23:56
17F:→ gn00618777: 謝謝。 01/19 09:19