Javascript检查字符串是否只包含特定字符

时间:2015-01-16 13:31:34

标签: javascript regex string

如果给定的字符串只有一个特定的字符,但是该字符的出现次数,我想返回true。例如:

// checking for 's'
'ssssss' -> true
'sss s'  -> false
'so'     -> false

4 个答案:

答案 0 :(得分:7)

检查

<div class="container">
    <form action="javascript:;" method="post" class="form-inline" id="form">
        <input type="text" id="message" class="input-medium" placeholder="Message" value="Hello, world!" />

        <button type="button" class="btn" data-action="insert">Show</button>

    </form>
</div>

的JavaScript

   var onloading = (function () {

            $('body').on('click', ':button', function () {
                var a = document.getElementById("message").value;
                var hasS = new RegExp("^[s\s]+$").test(a);
                alert(hasS);
            });

    }());

示例http://jsfiddle.net/kXLv5/40/

答案 1 :(得分:2)

检查是否有空格和"s"以外的其他内容并反转布尔值

var look = "s";
if(!new RegExp("[^\s" + look + "]").test(str)){
   // valid
}

或检查他们是否是唯一一个使用字符类和锚点^$

的人
var look = "s";
if(new RegExp("^[\s" + look + "]$").test(str)){
   // valid
}

答案 2 :(得分:0)

首先,使用split将字符串转换为数组,

const letters ='string'.split('')

然后,使用Set数据结构并将数组作为参数传递给构造方法。 Set将只有唯一的值。

const unique = new Set(letters)

此唯一字符将只有唯一字符,因此,当您传递sss时,它将只有一个s

最后,如果唯一数组仅包含一个元素,那么我们可以说该字符串仅包含相同的字母。

if (unique.size() === 1) { // the string contains only the same letters}

您的函数应如下所示,

function isIdentile(string) {
    const letters = string.split('');
    const unique = new Set(letters)

    return unique.size() === 1 ? true: false;
}

答案 3 :(得分:0)

用sssssnake做

'sss'.split('s').some(s => s) === true
'sssnake'.split('s').some(s => s) === false