[英]How to match multiple strings using regular expression?
我有一堆字符串可以匹配Bonfire:FreeCodeCamp中的Palindrome字符串是:
我的代碼:
function palindrome(str) {
var newstr = str.replace(/[^\w_-]/g,"").toLowerCase();
var num = newstr.length;
for(var i=0;i<=Math.floor(num/2);i++)
{
if(newstr[i]!==newstr[num-i])
{
return newstr;
}
}
return true;
}
if語句中可能有什么問題? 字符串的返回是可以的。只是不能將我的頭放在這些正則表達式周圍嗎?
我當前的正則表達式:
var newstr = str.replace(/[^\w_-]/g,"").toLowerCase();
匹配除最后一個以外的幾乎所有字符串。 我要去哪里錯了?
最后一個不是回文; 您的開頭為0_0,結尾為0-0,請勿擦除這些字符。
作為學問,嚴格來講,這不是常規語言。
數組或字符串中的索引從0
到length-1
。 但是,當您訪問字符串末尾的元素時,您將使用num
而不是num-1
。 從末尾減去時,您需要再減去1
。 因此應該是:
if (newstr[i] != newstr[num-i-1]) {
return newstr;
}
因此,盡管答案是有用的,但它們沒有提供正確的正則表達式。 射向@Barmar以指向正確的方向。 這是我的正則表達式。
var newstr = str.replace(/[\W_]/g,'').toLowerCase();
FCC中回文的完整代碼:
function palindrome(str) {
var newstr = str.replace(/[\W_]/g,'').toLowerCase();
var num = newstr.length;
for(var i=0;i<=Math.floor(num/2);i++)
{
if(newstr[i]!==newstr[num-1-i])
{
return false;
}
}
return true;
}
palindrome("0_0 (: /-\ :) 0-0");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.