如何检测字符串中的一系列字符?

时间:2011-12-12 03:52:27

标签: javascript

例如,我有一个字符串:

"This is the ### example"

我想从上面的字符串中将###子串起来吗?

哈希键的数量可能会有所不同,因此我希望找出并替换###模式,例如001

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:3)

您也可以进行替换。我熟悉这个的C#版本,

string stringValue = "Thia is the ### example";
stringValue.Replace("###", "");

这将从上面的字符串中完全删除###。你必须再次知道确切的字符串。

在JavaScript中,它类似 - .replace(使用小写r)。所以:

var stringValue = "This is the ### example";
var replacedValue = stringValue.replace('###', '');

答案 1 :(得分:1)

您需要为此调查“Regular Expressions”,或者,如果您知道您感兴趣的字符的精确位置和长度,则可以使用String的.substring方法。

答案 2 :(得分:0)

如果知道字符串的其余部分,只需获取所需的部分:

var example = str.substr(12, str.length - 20);

答案 3 :(得分:0)

如果你想捕获多个#个字符,那么你需要正则表达式:

var myString = "This is #### the example";
var result = myString.replace(/#+/g, '');

如果您也想删除空格,可以使用正则表达式/#+\s|\s#+|#+/

答案 4 :(得分:0)

javascript匹配方法将返回与正则表达式匹配的子字符串数组。您可以使用它来确定要替换的匹配字符数。假设您想用随机数替换每个octothorpe,您可以使用如下代码:

var exampleStr = "This is the ### example";
var swapThese = exampleStr.match(/#/g);
if (swapThese) {
    for (var i=0;i<swapThese.length;i++) {
        var swapThis = new RegExp(swapThese[i]);
        exampleStr = exampleStr.replace(swapThis,Math.floor(Math.random()*9));
    }
}
alert(exampleStr); // or whatever you want to do with it

请注意,代码只会循环显示数组的长度:if (swapThese) {

此检查是必要的,因为如果match方法找不到匹配项,则返回null而不是空数组。试图迭代空值会破坏。