<br /> <br /> <br />
或有時
<br /> <br />
或
<br />
字符串如何檢查是否字符串只在Javascript中包含空白和br? EX: 如果(/ \ s * /測試(內容)){ }
<br /> <br /> <br />
或有時
<br /> <br />
或
<br />
字符串如何檢查是否字符串只在Javascript中包含空白和br? EX: 如果(/ \ s * /測試(內容)){ }
有要檢查並允許,空格和<br />
,使顯示的交替,允許零次或多個重複,在兩個固定兩件事情結束:
if(/^(?:\s|<br \/>)*$/.test(content)){ }
這意味着:
^
- 輸入(?:...)
的開始 - 非捕獲組\s
- 任何單個空白字符|
- 交替,允許東西在它<br \/>
任一側 - 匹配文字字符串<br />
(請注意,我們必須轉義/
)*
- 零個或更多的是去之前的東西,非捕獲組$
- 輸入結束如果有一個機會,在標籤內的空間或斜線可能不存在,或空間可以被重複,那麼:
if(/^(?:\s|<br *\/?>)*$/.test(content)){ }
添加*
的空間讓後會有零,或多個,空格;在固相線(/
)之後加上?
讓它在那裏(一次)或不在。
注意:以上不允許在br
標記的任何屬性,例如, <br class="foo" />
,<br data-foo="bar"/>
等。它也匹配空字符串。
要允許屬性,但繼續匹配空字符串:
if(/^(?:\s|<br[^>]*>)*$/.test(content)){ }
// Change ----^^^^
爲了允許屬性和禁止空字符串(必須至少有一個空格,或一個br
標籤):
if(/^(?:\s|<br[^>]*>)+$/.test(content)){ }
// Change ------- ---^
它的作品就像一個魅力。感謝這麼多 –
@NTThái:很高興幫助! –
"^\s*<br />$"
爲您提供了空白的任何數量的線(包括進入和標籤!),並以 「
」
讓我們以此字符串爲例:
var input = " <br /> ";
首先我寧願從輸入中刪除所有的空格,這樣我們就不必擔心使得正則表達式檢查這些:
var testData = input.replace(/\s/g, '');
//in this example, testData will now be "<br/>"
的可以執行一個正則表達式來檢查只有<br/>
存在:
var regex = /^(?:<br\/>)*$/;
var isValid = regex.test(testData);
FWIW:不需要替換,或者在最終測試中用於捕獲組。 –
@ T.J.Crowder:實際上捕捉組似乎是必需的(嘗試從我的小提琴鏈接中刪除它)。我知道替換是不需要的,我只是討厭使用混亂的輸入,並且我喜歡儘可能小地保留我的正則表達式 - 或者儘量避免使用它們 – musefan
@ musefan:您需要*組*,但不是捕獲組,所以'*'適用於整個事情:'var regex =/^(?:
)* $ /;'[fiddle](http://jsfiddle.net/jD2V4/1/) (捕獲小組在理論上爲rex引擎做了更多的工作,儘管我希望'test'能優化它們!)。 –
我想象它是微不足道的:'/ ^(\ s |
] *>)+ $ /我' –