你会如何使用正则表达式javascript来做到这一点

How would you do this with regular expression javascript?

本文关键字:这一点 javascript 正则表达式 何使用      更新时间:2023-09-26

我正在学习javascript,对正则表达式(正则表达式)感到困惑。有时可能是语法,但主要是我对正则表达式的理解很差。例如,对我来说var pattern = /^0+$/;只是垃圾。

这个jQuery if/else语句可以转换为正则表达式方法吗?如果是这样,如何/为什么?

// Set header link widths based on how many there are
var nav = $('#nav_header a');
var navlinks = $('#nav_header').children('a').length;
if (navlinks == 1) {
    nav.css('width', '100%');
} else if (navlinks == 2) {
    nav.css('width', '50%');
} else if (navlinks == 3) {
    nav.css('width', '32%');
} else if (navlinks == 4) {
    nav.css('width', '25%');
} else if (navlinks == 5) {
    nav.css('width', '20%');
} else if (navlinks == 6) {
    nav.css('width', '16.6%');
} else if (navlinks == 7) {
    nav.css('width', '14.25%');
} else if (navlinks == 8) {
    nav.css('width', '12%');
} else if (navlinks == 9) {
    nav.css('width', '11%');
} else if (navlinks == 10) {
    nav.css('width', '10%');
} else {
    nav.css('width', '8%');
}

是否有特定的技术来编写正则表达式JS,需要考虑的事项并尝试保持其人类可读性?

感谢您的帮助和建议:)

我的建议是,创建一个简单的查找数组:

var percents = ["100%", "50%", "32%", "25%", "20%", "16.6%", "14.25%", "12%", "11%", "10%", "8%"];
var nav = $('#nav_header a');
var navlinks = $('#nav_header').children('a').length;
navlinks == 0 ? nav.css("width", "8%") : nav.css("width", percents[navlinks - 1]);

var pattern =/^0+$/; 对我来说就像废话。

实际上这很简单,如果字符串仅包含 0 s,它才匹配该字符串。

这个jQuery if/else语句可以转换为正则表达式方法吗?如果是这样,如何/为什么?

不,它不能。正则表达式用于查找文本中的模式或围绕给定模式拆分文本或替换给定模式。不能使用它们代替条件语句。

你不需要正则表达式来:)

var nav = $('#nav_header a');
var navlinks = $('#nav_header').children('a').length;
var widths = ['100%', '50%', '32%', '25%', '20%', '16.6%', '14.25%', '12%', '11%', '10%']
nav.css('width', (navlinks >= 1 && navlinks <= 10) ? widths[navlinks-1] : '8%')
相关文章: