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 回答