如何使用正则表达式匹配多个字符串
How to match multiple strings using regular expression?
我有一堆字符串要匹配FreeCodeCamp中的Bonfire:回文字符串为:
- 眼睛
- 赛车
- 不是回文
- 一个人,一个计划,一条运河。巴拿马
- 没有
- almostomla
- 我的年龄是0,0岁
- 1只眼睛代表1只眼睛
- 0_0(:/-'':)0-0
我的代码:
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");
相关文章:
- 选择“字符串”并使用SeleniumJava双击
- 如何提取与前面带句点(.)的同一字符串匹配的字符串?(仅使用正则表达式)
- 如何优化要在 javascript 字符串中使用的长 html 代码的创建
- 通过向动态id添加字符串,使用JavaScript控制文本框
- 如何将ngOptions与包含HTML实体的字符串一起使用
- 如何编写RegExpression For在javascript中不允许在字符串中使用前导和结尾空格
- Asp.net WebMethod-返回字符串[]并使用JavaScript进行解析
- 这将如何在JavaScript中完成.在连接字符串中使用变量
- 将变量与 HTML 字符串一起使用,并计算
的数量 - 在字符串中使用英寸表示法提取数值并返回较大的数值
- 如何在WCF服务中获取Xml作为字符串并使用JavaScript发送
- 分析获取查询字符串并使用值更改复选框状态
- 如何在 ES6 模板字符串中使用颜色
- 如何在动态字符串上使用 JavaScript replace()
- 如何在 html 属性字符串中使用 JavaScript 变量
- 如何在WordPress查询字符串中使用javascript变量
- Dom 字符串在使用 jQuery attr 操作后不会改变
- 拆分字符串并使用 JavaScript 将其存储在 3 变量中
- 如果我在字符串上使用两个否定运算符,我是否使用类型强制
- 在字符串中使用 PHP 作为字符串.(JQuery)