js提示“未结束的字符串常量”

js提示“未结束的字符串常量”


有时候,突然会看到js提示“未结束的字符串常量”,这个提示,是怎么回事呢,


下面总结下原因


首先这个错误提醒,不是没有原因的,js的提醒一定会有我们做的不好的地方


一般这个提醒会在我们alert(“一段比较长的内容”);的时候出现,为啥有的可以弹出,有的却不行呢


其实这个和我们保存时的内容有关系,而我们去除内容的时候没有注意转换,如果保存的内容有空格,切换行了,那么就会提示这个,只要在取出内容的时候


过滤下空格和换行符号即可。


解决方法如下:

1、js实现代码

<script type="text/javascript">
/**
 * 去除字符串的空格或换行符
*/
<!--  
    var questionName = "   a   b   c   ";  
    //左右两边的空格都去掉,结果是"a  b  c"  
    questionName = questionName.replace(//s*$|^/s*/g,"");  
    //去掉所有的空格和换行符,结果为"abc"  
    questionName = questionName.replace(//s+/g,"");  
    //去掉右边所有的空格,结果为"  a  b  c"  
    questionName = questionName.replace(//s+$/g,"");  
    //去掉左边所有的空格,结果为"a  b  c  "  
    //questionName = questionName.replace(/^/s*/g,"");  
    alert(questionName)  
    // -->
</script>

附,正则表达式中的元字符:
^ 匹配字符串的开始
$ 匹配字符串的结束

/pattern/m元字符:多行查找
/pattern/g元字符:全局匹配
/pattern/i元字符:忽略大小写

/d 匹配数字
/b 匹配单词的开始或结束
/w匹配字母或数字或下划线或汉字。
/s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。

“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。  
“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。  
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。


2、Java代码实现

使用正则表达式进行替换:

代码片段:

String documentTxt = EntityUtils.toString(entity,"gbk");//获取数据 
documentTxt=documentTxt.replaceAll("[\\t\\n\\r]", "");//将内容区域的回车换行去除

说明:String类的replaceAll就有正则替换功能。 \t为制表符 \n为换行 \r为回车

java正则使用:

示例方法:


public void parseTxt(String content){
        Pattern p = Pattern.compile(Config.articlePtn);
        Matcher matcher = p.matcher(content);
        while(matcher.find()){
            System.out.println(matcher.group(1));
        }

    }

说明:只需记住Pattern类,它的静态方法complie解析一个正则表达式生成一个Pattern对象。

然后用模型去匹配字符串,得到一个Matcher,通过matcher的find方法遍历所有的匹配。

group为正则表达式中的组,及()表达式。group(0)为原字符串,gourp(1)为匹配到的第一个组...即匹配到的组的索引从1开始。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值