0

文字列内の部分文字列を見つけて、その"<br/>"前後にスペースがあるかどうかを確認する方法を知っている人はいますか? これを使用して、文字列にサブ文字列が含まれているかどうかを確認しています。

if (str.indexOf('<br/>') !== -1) {
}

しかし、その前後にスペースがあるかどうかを確認するにはどうすればよいでしょうか。助けてくれてありがとう!

4

2 に答える 2

2
var idx = str.indexOf('<br/>');

var hasSpaces = idx > 0 &&
    (str.charAt(idx -1) === ' ' || str.charAt(idx + 5) === ' ');

<br/>編集:このソリューションは、スペースがない場合でものインデックスも気にする場合に機能します。スペースがない場合を気にしない場合は<br/>、@ Davidのソリューションの方が適しています(ただし\b、これは任意の単語の境界に一致するため、必要に応じて厳密にすることをお勧めします)。


別の編集:提供されている正規表現ソリューションのいくつかは、前後にスペースがある場合にのみ機能することに気づきました。これは、前後または両側のスペースで機能する例です。

var match = str.match(/\s?<br\/>\s?/);
var hasSpaces = match && match[0].length > 5;
于 2012-05-16T19:58:17.630 に答える
2
var index = str.indexOf('<br/>');
var spaceBefore = false;
var spaceAfter = false;


if (index !== -1) {
    if (str.charAt(index - 1) === ' ') {
        spaceBefore = true;
    }

    if (str.charAt(index + 5) === ' ') {
        spaceAfter = true;
    }
}

http://jsfiddle.net/jbabey/8FYhv/

于 2012-05-16T20:00:36.640 に答える