JavaScript字符串处理

1、检查一个存在的、非空的字符串

  问题:想要检查一个已经定义了的变量,是一个字符串,并且它不为空。

  解决方案:

  使用typeof运算符、通用的valueOf方法以及String length属性来创建一个条件测试,以确保一个变量是存在的,是一个字符串,并且不为空。

<script type="text/javascript">
    // 如果变量存在,是一个字符串,并且其长度大于0,结果为真。
    if (((typeof unknownVariable != "undefined") && (typeof unknownVariable.valueOf() == "string"))
        && unknownVariable.length > 0) { 
        
    }
</script>

  讨论:

  JavaScript typeof运算符返回一个变量的类型。可能的返回值如下:

  ◊ 如果变量是一个数字,返回“number”;

  ◊ 如果变量是一个字符串,返回“string”;

  ◊ 如果变量是一个布尔类型,返回“boolean”;

  ◊ 如果变量是一个函数,返回“function”;

  ◊ 如果变量是null、一个数组,或者其他的JavaScript对象,返回“object”;

  ◊ 如果变量未定义,返回“undefined”;

<script type="text/javascript">
    // 如果变量存在,并且其长度大于0,结果为真。
    if ((typeof unknownVariable !== "undefined") && unknownVariable.length > 0) {

    }
</script>

  valueOf方法对于所有的JavaScript对象都可用,并不管对象是什么,都返回其基本值。

2、处理textarea的单个行

<script type="text/javascript">
    var txtBox = document.getElementById("inputbox");
    var lines = txtBox.value.split("\n");

    // 将最后一行打印到页面
    var blk = document.getElementById("result");
    blk.innerHtml = lines[lines.length - 1];
</script>

3、去除字符串末尾的空白

  问题:需要去除从表单元素获取的一个字符串周围的空白。

  解决方案:

  使用最新的ECMAScript5 String trim方法:

<script type="text/javascript">
    var txtKeyword = document.getElementById("txtKeyword").value.trim();
</script>

  讨论:

  在ECMAScript5发布之前,必须使用正则表达式和String replace()方法来去除掉一个字符串周围不需要的空白。

  可供使用的替代方法,它不仅允许使用trim,而且如果trim不存在的话,它也是一种备用方案。

  首先,在需要使用trim功能时,先测试trim是否作为String对象的一个属性存在。如果它不存在,需要使用String prototype给该对象添加一个定制的trim。

<script type="text/javascript">
    if (typeof String.trim == "undefined") {
        String.prototype.trim = function () {
            return this.replace(/(^\s*)|(\s*$)/g, "");
        }
        String.prototype.leftTrim = function () {
            return this.replace(/^\s+/, "");
        }
        String.prototype.rightTrim = function () {
            return this.replace(/\s+$/, "");
        }
    }

    var txtKeyword = document.getElementById("txtKeyword").value.trim();
</script>
原文地址:https://www.cnblogs.com/libingql/p/3001051.html