例如,我有一個字符串:如何檢測字符串中的一系列字符?
"This is the ### example"
我想串的###
出上面的字符串的?
散列鍵的數量可能會有所不同,所以我想找出並替換###
模式,例如,001
例如。
任何人都可以幫忙嗎?
例如,我有一個字符串:如何檢測字符串中的一系列字符?
"This is the ### example"
我想串的###
出上面的字符串的?
散列鍵的數量可能會有所不同,所以我想找出並替換###
模式,例如,001
例如。
任何人都可以幫忙嗎?
如果你想捕捉多個#
字符,那麼你需要的正則表達式:
var myString = "This is #### the example";
var result = myString.replace(/#+/g, '');
如果你想刪除的空間太大,你可以使用正則表達式/#+\s|\s#+|#+/
。
您需要爲此調查「Regular Expressions」,或者如果您知道您感興趣的字符的精確位置和長度,則可以使用String的.substring
方法。
你也可以做一個替代。我熟悉這個的C#版本,
string stringValue = "Thia is the ### example";
stringValue.Replace("###", "");
這將完全從上面的字符串中刪除###。再次,你將不得不知道確切的字符串。
在JavaScript中,它是類似的 - 使用.replace
(使用小寫r
)。所以:
var stringValue = "This is the ### example";
var replacedValue = stringValue.replace('###', '');
#鍵的數量不盡相同,它可能是1,或者可能是10個字符,而不僅僅是3.非常感謝:) – user1093037
只是隨機的,但你可以在循環中進行替換,只需將'#'替換爲''直到沒有更多的哈希。但正則表達式的解決方案更好,我會同意你的情況。 – peter
javascript匹配方法將返回匹配正則表達式的子字符串數組。您可以使用它來確定要替換的匹配字符的數量。假設你想用一個隨機數字來代替每個井號,你可以使用這樣的代碼:
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) {
此檢查是必要的因爲如果匹配方法找不到匹配項,它將返回空值而不是空數組。嘗試迭代null值將會中斷。
太棒了!非常感謝。我怎樣才能算出哈希密鑰序列的長度?在這種情況下是4? – user1093037
正則表達式類通常允許您在字符串中查找正則表達式匹配,並將它們作爲字符串數組返回給您。然後你可以計算字符串的長度。 – peter
像這樣,如果你新建一個RegExp類並運行exec方法,你會收到一個字符串數組作爲結果的一個或多個匹配項。 – peter