gpt4 book ai didi

JavaScript 正则表达式返回 false?

转载 作者:行者123 更新时间:2023-12-03 12:20:29 24 4
gpt4 key购买 nike

我正在学习 javascript,但这对我来说毫无意义。 test() 如果字符匹配则返回 true 或 false。那么有人可以解释为什么我下面的代码不起作用吗?

var str = "hello*3";
var arr = str.split('');

for(var i in arr){
re = new RegExp("/[a-z]/i");
if(re.test(arr[i])) {
console.log(String.fromCharCode(arr[i].charCodeAt() + 1));
}
}

re.test(arr[0]); //arr[0] == 'h'
// false

更新示例:

var re = new RegExp("/[a-z]/i");
re.test('h');
// returns 'false' (I'm expecting this to be true)

最佳答案

使用 RegExp 时不需要 / 并将标志作为第二个参数传递

这应该有效 re = new RegExp("[a-z]", "i");

或文字形式

re =/[a-z]/i;

更多信息可以在 MDN 上找到 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

来自上面链接的一些信息

构造函数文字和构造函数符号是可能的:

/pattern/flags; 
new RegExp(pattern [, flags]);

模式

正则表达式的文本。

旗帜

如果指定,标志可以是以下值的任意组合:

g

全局匹配

忽略大小写

m

多行;将开始和结束字符(^ 和 $)视为处理多行(即,匹配每行的开头或结尾(由\n 或\r 分隔),不仅是整个输入字符串的开头或结尾)

粘性的;仅匹配目标字符串中此正则表达式的 lastIndex 属性指示的索引(并且不会尝试匹配任何后续索引)。这允许通过更改 lastIndex 属性的值在字符串中的任何位置有效地使用字符“^”的仅在开始时匹配的功能。

关于JavaScript 正则表达式返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23960325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com