javascript - 正则表达式通配符问题

标签 javascript regex replace wildcard

代码:

strx = "exam/unwanted_tex/ple";
strx = strx.replace(/\/.+\//, '');
alert(strx); // Alerts "example"

2 个简单问题:

  1. 此代码会替换“/”和“/”内的所有内容?
  2. 使用“.*”而不是“.+”有什么区别

最佳答案

  1. '*''+' 称为量词。 '*' 匹配其前面零次或多次的字符或组。从某种意义上说,这使得匹配成为可选的。 '+' 匹配前面一次或多次的字符或组。在您的特定示例中,没有实际差异。然而,当在其他应用程序中使用时,这种区别非常重要。这是一个例子:

'*' 量词(匹配零次或多次)

// Match 'y' in Joey zero or more times
strx = "My name is Joe";
strx = strx.replace(/Joey*/, 'Jack');
alert(strx)  // Alerts "My Name is Jack"

'+'量词(匹配一次或多次)

// Match 'y' in Joey one or more times
strx = "My name is Joe";
strx = strx.replace(/Joey+/, 'Jack');
alert(strx)  // Alerts "My Name is Joe"

关于javascript - 正则表达式通配符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199125/

相关文章:

javascript - less.js - 在解析器的回调中获取变量值

javascript - 如何打印行生成器的结果?

c# - 加拿大邮政编码验证

regex - 我的正则表达式有什么问题?

java - 尝试替换文本时出现StringIndexOutOfBoundsException

php - 如何使用 DOMDocument 将节点替换为字符串

javascript - 动画如何为不同的元素排队?

javascript - 在事件 anchor 上运行功能

javascript - 第三位小数为 0 或 5 的正则表达式十进制数

c# - 正则表达式替换除特定模式之外的所有内容