FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
JavaScript/String/AlphaNumericPalindrome.js at master · TheAlgorithms/JavaScript · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
TheAlgorithms
/
JavaScript
Public
Uh oh!
There was an error while loading.
Please reload this page
.
Notifications
You must be signed in to change notification settings
Fork
5.8k
Star
34.2k
Code
Issues
21
Pull requests
192
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
JavaScript
/
String
/
AlphaNumericPalindrome.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
36 lines (32 loc) · 1.26 KB
Breadcrumbs
JavaScript
/
String
/
AlphaNumericPalindrome.js
Copy path
File metadata and controls
36 lines (32 loc) · 1.26 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
*
@function
alphaNumericPalindrome
*
@description
alphaNumericPalindrome should return true if the string has alphanumeric characters that are palindrome irrespective of special characters and the letter case.
*
@param
{
string
} str the string to check
*
@returns
{
boolean
}
*
@see
[Palindrome](https://en.wikipedia.org/wiki/Palindrome)
*
@example
* The function alphaNumericPalindrome() receives a string with varying formats
* like "racecar", "RaceCar", and "race CAR"
* The string can also have special characters
* like "2A3*3a2", "2A3 3a2", and "2_A3*3#A2"
*
* But the catch is, we have to check only if the alphanumeric characters
* are palindrome i.e remove spaces, symbols, punctuation etc
* and the case of the characters doesn't matter
*/
const
alphaNumericPalindrome
=
(
str
)
=>
{
if
(
typeof
str
!==
'string'
)
{
throw
new
TypeError
(
'Argument should be string'
)
}
// removing all the special characters and turning everything to lowercase
const
newStr
=
str
.
replace
(
/
[
^
a
-
z
0
-
9
]
+
/
gi
,
''
)
.
toLowerCase
(
)
const
midIndex
=
newStr
.
length
>>
1
// x >> y = floor(x / 2^y)
for
(
let
i
=
0
;
i
<
midIndex
;
i
++
)
{
if
(
newStr
.
at
(
i
)
!==
newStr
.
at
(
~
i
)
)
{
// ~n = -(n + 1)
return
false
}
}
return
true
}
export
default
alphaNumericPalindrome
Back
|
FazBrowse Home
|
New Git URL