2014-02-28 128 views
0

我有一個textarea,用戶可以在其中輸入下劃線。我想將它們的下劃線轉換爲10個下劃線的字符串。我希望在打字時實時完成此操作。Javascript正則表達式用一串下劃線替換單個下劃線

_ =>_ ___

我原以爲我可以做的簡單的東西:

的onkeyup: textarea.value.replace(/ _ * /克,「_ ___「);

我認爲它會匹配任何下劃線字符串並自動將它們轉換爲10個下劃線。

雖然我真的很奇怪。鍵入下劃線會產生20個下劃線。此外,它似乎與我輸入的任何字符的左側和右側相匹配。例如,如果我輸入 「A」,我得到:

___一個_ __

有誰知道如何得到這個工作是否正常?看起來很簡單,但我很難過。謝謝。

+0

看起來像我上面輸入的下劃線縮短了。在上面的帖子中,任何下劃線> 1個字符的字符串都應該是10個字符。 – user1464652

回答

1

使用/_+/而不是/_*/*在正則表達式中匹配零個或多個字符,所以它匹配下劃線後面的空字符串並用10個下劃線替換它。 +匹配一個或多個。

+0

謝謝。這工作。 – user1464652

0

將您的模式更改爲/ _ {1,} /這將匹配_或_,您的先前模式匹配_以及之後的任意數量的字符。

+0

錯誤,我想念的問題,你想改變_到_x10但你爲什麼要這樣做:)你想要的模式是/ _ {1} /這將匹配一個找到並替換它與你等等/ g修飾符你會得到每一個匹配並替換它。 – alexmac

+0

我的目標是讓用戶填寫空白句子。與其依靠它們爲空白鍵輸入一串下劃線,我認爲自動擴展下劃線字符會更容易。它還將確保所有空白的長度相等。 – user1464652

相關問題