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

Javascript check if string contains only certain character

我想 return 如果给定字符串只有某个字符但该字符出现任意次数,我想 return 为真。
示例:

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

只需检查是否存在除 space 和 "s" 之外的任何其他内容并反转布尔值

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

或者检查它们是否是唯一一个使用字符 class 和锚点 ^$

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

检查这个

<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/

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

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

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

const unique = new Set(letters)

这个 unique 将只有唯一字符,因此,当您传递 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;
}

用 sssssnake 做

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