2011-03-03 35 views
2

在我的文本框,我應該找(<LessThan Symobl><character>)與(<LessThan Symbol <space> <character>更換小於和性格與每種不超過空間和字符在javascript

實例代替:

輸入:

abc<xyz abc <abc 

輸出:

abc< xyz abc < abc 

從一個字符串,我應該找到([LessThanSymbol][字符])中並用([LessThanSymbol] [空間] [性狀])以JavaScript

+0

我不知道我理解的期望的結果... – Orbit 2011-03-03 20:56:20

+0

重新寫問題,請! – JAiro 2011-03-03 20:57:09

+0

我在下面再次重寫了這個問題。我應該可能需要一些正則表達式,它會找到符號後跟一個字符,然後替換爲小於符號,後跟空格後跟字符。 – SKumar 2011-03-03 21:08:36

回答

5

您可以使用正則表達式來查找所有<字符後跟一個非空格字符,並插入一個空格:

s = s.replace(/<([^ ])/g, '< $1'); 
+0

它工作正常。但是,如果在<字符後面有新行字符,也會插入空格。如果在< – SKumar 2011-03-03 21:28:20

+0

@SKumar之後有新行字符,我不應該插入空格:可以使用'\ S'而不是'[^]'來匹配任何非空白字符而不是任何非空格字符。 – Guffa 2011-03-04 00:28:30

0
替換

試着像...

var string_variable; 
string_variable = "Replace text using javascript replace function within a javascript string variable"; 
string_variable = string_variable.replace(/javascript/g, "js"); 
alert(string_variable); 

(參見:http://www.kodyaz.com/articles/replace-all-occurrences-of-string-using-javascript-replace-function.aspx

+0

「/ g」會導致替換替換所有的事件......如果可能的話,您可能已經有了「 2011-03-03 21:05:23

+0

我不知道LessThan符號後出現了什麼字母。我應該可能需要一些正則表達式,它會找到符號後跟一個字符,然後替換爲小於符號,後跟空格後跟字符。但是,我不知道該怎麼做 – SKumar 2011-03-03 21:07:19

+0

如果你有「<1」,你是否想用「<1」來代替它,或者你只是想爲alpha字符做這個? – 2011-03-03 21:09:10

0

我找到答案了這一點。

s= s.replace(/<([^ \n])/g, '< $1'); 

它後,接着(非空格和非新線)的每種不超過的所有出現每種不超過

2
s = s.replace(/<(?=\S|$)/g, "< "); 

這意味着插入空間:

  • 您能猜出.replace()呢以及<代表什麼。 :-)
  • (?=...)是一個「積極的前瞻」 - 它意味着「緊隨其後」。
  • \S匹配任何-空格字符(除空格,非破壞空格,製表符,回車符和換行符之外的任何東西)。
  • $匹配字符串的末尾。
  • /.../g執行全局搜索/替換。

使用前瞻防止您不必使用捕獲組($1),使用\S修復您的換行的問題,並使用$讓你從有類似的問題,如果字符串結尾的低於。

>>> "<foo < bar <\tbaz <\rquux <\nquuux <".replace(/<(?=\S|$)/g, "< ") 
"< foo < bar <\tbaz <\rquux <\nquuux <" 
1

我發現最好的是這樣的:

s = s.replace(/<(?!\s)(?!$)/g,'< '); 

這意味着:(?!\ S)

  • - 不是在一個空格(負前瞻)
  • (?!$) - 之後沒有字符串末尾(Negative Lookahead)

您也可以使用拆分(),然後一個連接():

'abc<xyz abc <abc'.split('<').join('< ') 

但與這種方法的一個問題:這是完成了非必要的空間線索人物。

'abc<xyz abc <abc<'.split('<').join('< ') 

給出了這樣的結果

'abc< xyz abc < abc< ' 
相關問題