Javascript 函数整理

标签 javascript jquery

下面您将看到我当前正在使用的 javascript/jQuery 函数:

            var forward = new RegExp('forward'),
                backward = new RegExp('backward'),              
                left = new RegExp('left'),      
                right = new RegExp('right');                

            if ( tweet.message.match(forward) ) {
                console.log('forward');
                body.addClass('forward');
                bodyRemoveClass();                          
            }

            if ( tweet.message.match(backward) ) {
                console.log('backward');
                body.addClass('backward');
                bodyRemoveClass();                          
            }

            if ( tweet.message.match(left) ) {
                console.log('left');
                body.addClass('left');
                bodyRemoveClass();                          
            }

            if ( tweet.message.match(right) ) {
                console.log('right');
                body.addClass('right');
                bodyRemoveClass();                          
            }                   

一切正常,但我对它的编写方式不是 100% 满意。 基本上,它的作用是检查给定的关键字(向前、向后、向左或向右)
在推文中 (tweet.message)

我想知道是否有一种更简单/更简洁的方法来实现这一目标。

抱歉,没有在线示例...

谢谢

最佳答案

这里不需要将 match()Regexp 一起使用。您可以使用 indexOf() 进行简单的字符串匹配。然后,您可以避免在开头声明所有 Regexp

        if ( tweet.message.indexOf("forward") > -1) {
            console.log('forward');
            body.addClass('forward');
            bodyRemoveClass();                          
        }

        if ( tweet.message.indexOf("backward") > -1) {
            console.log('backward');
            body.addClass('backward');
            bodyRemoveClass();                          
        }

        if ( tweet.message.indexOf("left") > -1) {
            console.log('left');
            body.addClass('left');
            bodyRemoveClass();                          
        }

        if ( tweet.message.indexOf("right") > -1) {
            console.log('right');
            body.addClass('right');
            bodyRemoveClass();                          
        }               

但是,使用一组类可以更巧妙地完成此操作:

// Store your 4 classes in an array
var classes = ["forward","backward","left","right"];
for (var i = 0; i<classes.length; i++) {

  // Check each class appearing in the message:
  if ( tweet.message.indexOf(classes[i]) > -1) {
     console.log(classes[i]);
     body.addClass(classes[i]);
     bodyRemoveClass();                          
  }
}

关于Javascript 函数整理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452211/

相关文章:

JavaScript 对象检查键——但忽略大小写

jquery - 跳过 li 的列数 css 属性

php - jQuery 变量到 php 不起作用

javascript - 内联 If Then 语句。网络

javascript - 监视 Jasmine-Jquery 函数调用

javascript - jquery ui datepicker 在 beforeShowDay 出现错误

c# - Fancybox (jQuery) 首次单击时不显示

jquery - 将按钮放置在图像悬停上

jquery - 如何使用 JavaScript/jQuery 在我的幻灯片导航中实现 “current picture” 指示器?

javascript - Node.js 未从 'public/views' 路由渲染 html 页面